개요 사용중인 개발서버의 EoS(End of Support) 도래로 운영체제를 바꾸는 대작업을 하게 되었다. 그중 컨테이너를 구동하는 Docker를 Podman으로 마이그레이션 하는 과정을 기록한다. Docker로 커밋(commit) 및 저장(save)한 이미지를 Podman을 사용하여 로드(load)하고 실행할 수 있다. Docker와 Podman은 모두 OCI(Open Container Initiative) 표준을 준수하기 때문에, Docker로 생성된 이미지는 Podman에서도 사용할 수 있다. 백업 실행중인 도커 컨테이너 그대로 이미지로 생성(커밋)한다. docker commit my-custom-image:latest 커밋한 이미지를 아카이브 파일로 저장한다. docker save my-cust..
[개발환경] M2 OSX Ventura 13.2.1 VS Code SpringBoot 3.0.2 OpenJDK 17 Gradle 7.6 [Docker] - mysql:latest 들어가며 Spring Session과 JWT는 둘 다 스프링 부트 애플리케이션에서 인증과 세션 관리를 위해 사용될 수 있지만, 서로 다른 방식으로 작동한다. 앞선 포스트에서 Spring Session에 대해서 설명하고 직접 구현해 보았다. 2023.03.08 - [DEV/SpringBoot] - [SpringBoot3] 로그인 페이지 실습 1 JWT는 서버와 클라이언트 간의 인증에 사용되며, 클라이언트에서 토큰을 생성하고 서버에서 검증한다. JWT는 사용자 정보와 권한 정보를 포함할 수 있으며, 서버 측에서 세션을 저장하거나 관..
[개발환경] M2 OSX Ventura 13.2.1 VS Code SpringBoot 3.0.2 OpenJDK 17 Gradle 7.6 [Docker] - mysql:latest 들어가며 SpringBoot3에서 Spring Session과 JWT를 이용한 인증, 인가 로직을 구현하고 발생할 수 있는 취약점을 분석한다. Spring Session과 JWT는 둘 다 스프링 부트 애플리케이션에서 인증과 세션 관리를 위해 사용될 수 있지만, 서로 다른 방식으로 작동한다. Spring Session은 세션 데이터를 저장하기 위한 다양한 저장소(예: Redis, MongoDB, JDBC 등)를 지원하며, 서버 측에서 세션을 관리한다. Spring Security와 함께 사용할 때, Spring Session은 인..
문제 Could not run phased build action using connection to Gradle distribution 오류 발생하면서 Gradle 빌드가 되지 않는 오류 발생 해결 gradle 버전이 일치하지 않아서 발생하는 문제이며, gradle 경로에서 사용하지 않는 버전을 삭제한다. (또는 설치된 모든 gradle을 모두 삭제한 후 새로 build를 하면 자동으로 선언되어 있는 버전을 새로 다운받는다.) Windows: C:\Users\[UserName]\.gradle\wrapper\dists OSX: ~/.gradle/wrapper/dists 이후에 Gradle에서 Build를 다시 수행한다. 참고 https://stackoverflow.com/questions/68321708..
[개발환경] M2 OSX Ventura 13.0.1 VS Code SpringBoot 3.0.2 Java 11 Gradle 1. MySQL DB Docker image 내려받기 docker pull mysql docker run --name mysqldb -e MYSQL_ROOT_PASSWORD=Password -e MYSQL_DATABASE=mydb -d -p 3306:3306 mysql:latest docker container ls 명령으로 실행중인 컨테이너 확인할 수 있다. 2. [SpringBoot3] 의존성 추가 build.gradle 파일에 mysql 연결을 위한 의존성을 추가한다. JSP으로 작업할 때에는 직접 드라이버를 찾아서 설치해줘야 했는데 한 줄 추가만 하면 된다. implement..
@Last Update 23.02.20 [개발환경] M2 OSX Ventura 13.0.1 SpringBoot 3.0.2 Gradle [개발도구] VS Code 1. springdoc-openapi(Swagger) 적용하기 spring boot프로젝트의 API 문서 생성을 자동으로 생성해 준다. springdoc-openapi는 실행 시 응용 프로그램을 검사해서 spring 구성, 클래스 구조 등 다양한 주석과 어노테이션을 기반으로 API 의미를 추론한다. 가장 많이 사용하는 Springfox Swagger를 사용하였으나 Spring버전이 맞지 않아서 인지 에러와 함께 404에러가 발생했다. Spring 2 에서는 localhost:8080/swagger-ui.html Spring 3에서는 localho..
개요 Flutter에서 textFormField 를 통해 사용자에게 값을 입력받은 후 바깥을 터치했을 때 키보드를 내려서 다른 버튼입력을 받고 싶을 때 사용한다. GetstureDetector() 와 함께 onTap 메소드에 FocusScope.of(context).unfocus();를 사용하면 된다. GestureDetector( onTap: (){ FocusScope.of(context).unfocus(); }, child: Stack( children: [ //배경 Positioned( child: Container( height: 300, ... ) ) ] ), ) 원하는 구역을 터치했을 때 키보드가 사라진다. 출처 : 코딩셰프(https://www.youtube.com/channel/UC_2ge..
about 이미지나 화면의 문자를 읽어 텍스트로 변환해주는 광학 문자 인식(OCR, Optical Character Recognition)을 파이썬에서 사용하기 쉽게 해주는 도구이다. 테서랙트는 오픈소스 OCR 엔진 으로 유명하며 2005년 HP에 의해 오픈소스화 되었으며, 2006년 이후 Google에 의해 개발되고 있다. 공식 홈페이지는 https://github.com/tesseract-ocr/tesseract 이다. 패키지에는 OCR 엔진(libesseract) 및 CLI가 포함되어 있다. Tesseract 4는 라인 인식에 중점을 둔 새로운 신경망 기반 OCR 엔진(LSTM)을 추가했다. 인공지능을 추가한 것이다. Tesseract 3 등 하위 버전과의 호환을 위해 OCR 레거시 엔진 모드(—o..
Preview 플라스크는 세션관리 및 암호화를 위해 app.secret_key가 필수적으로 필요하다. 프로젝트 진행 후 코드 공유를 위해 깃헙(github.com)에 코드를 올릴 때 민감정보 노출을 막기 위해 .gitignore 설정이 필요하다. 이를 위해 xml로 키를 관리하는 방법과 .gitignore 파일 설정 방법을 정리한다. keys.xml xml파일은 데이터를 키(key)와 값(value)로 구분하여 구조화하여 전달하기 위해 만들어진 문서 형식이다. 메모장으로 열 수 있고 쉽게 편집, 열람이 가능하다. 파일의 첫 줄에 xml 파일임을 알린다. 사용할 키와 값을 입력한다. 여기서는 플라스크의 secret_key와 SQL DB 접속 패스워드를 예시로 한다. PassWord Flask+Secret+..