본문 바로가기

전체 글628

[Spring] Spring 3버전에 Springdoc 라이브러리를 사용해 swagger 적용하기 Springfox가 아닌 Springdoc으로 Swgger를 사용하는 이유 이전 Spring 에서 swagger를 사용할 때 springfox를 사용했는데 springdoc 에서 제공하는 swagger를 더 선호한다고해서 사용해보았다. springdoc는 webflux도 지원하며 더 사용하기 쉽다고 한다. Springdoc 사용하기 spring boot버전에 따라서 springdoc코드를 추가한다. spring boot 3버전부터 springdoc 2버전을 사용해야지 오류가 안난다. build.gradle //swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0' config 파일 Springdoc에서는 config.. 2024. 1. 12.
FCM(Firebase Cloud Messaging) FCM 사용 이유 플랫폼에 종속되지 않고 push 메시지를 사용할 수 있다. 서버를 경유해서 실시간으로 push 메시지를 받으려면 사용자는 서버에 항상 접속하고 있어야 하는데 이는 사용자의 기기의 배터리 및 네트워크 리소스를 크게 낭비한다. FCM을 사용하면 메시징 서버를 중간에 둠으로써 낮은 배터리와 적은 네트워크 사용만으로도 메시지를 실시간으로 처리할 수 있다. 또한 iOS, Andriod, Web 에 각각 push 메시지를 보내려면 각각의 환경별로 개발해야하는데 이를 하나로 통합하는 솔루션이다.     Notification Server - 모바일 기기에서 push 알림을 전송하는 서버 - FCM 사용  Client App- 사용자의 모바일 기기에 설치된 앱 - pu.. 2024. 1. 12.
[Spring] 멀티 모듈 사용하기 - 루트 프로젝트에 자식 의존성 추가하기 멀티모듈 사용하는 이유 서버를 여러개(api용, batch 용 등)를 사용하면 프로젝트를 여러개 만들어 사용하는데 프로젝트를 여러개 사용하는 경우 공통 코드를 사용할때 모든 프로젝트의 코드를 수정해주어야 한다. 이러한 불편한 점을 해결하기 위해서 멀티모듈을 사용하고자 한다. 멀티 모듈을 사용하면 코드를 분리해서 사용하기에 프로젝트별 코드 관리가 용이하다. 루트 프로젝트 생성하기 모듈을 담기 위한 루트 프로젝트를 생성하고 루트 프로젝트 안에서 모듈을 추가한다. 루트 프로젝트는 하위 모듈을 관리하는 역할만 하기 때문에 src 폴더를 삭제해도 된다. 모듈 추가하기 project 우클릭 > new > module 모듈을 추가한다. 모듈 추가 후 자식 모듈과 통신을 위해 루트 프로젝트 settings.gradle.. 2024. 1. 5.
[AWS] Amazon linux 2023 에 MySQL 8.0 설치 amazon linux 2023 AMI에 mysql 8.0 설치하는 것은 다른 AMI 들과 다르다. MySQL 설치하기 먼저 mysql 을 설치하고자 하는 인스턴스에 접속한다. ssh -i /path/my-key-pair.pem ec2-user@instance-public-ip Amazon Linux 에서 Mysql 을 찾는다. dnf search mysql repository 를 최신 버전으로 업데이트 한다. sudo dnf update 레포지토리 추가 sudo wget https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm 다운받기 sudo dnf install mysql80-community-release-el9-4.noarch.r.. 2023. 12. 21.
[Mysql] Docker 환경에서 mysql 설치 후 접속 에러 - Access denied for user 'root'@'172.17.0.1' (using password: YES) Docker 환경에 mysql 을 설치하고 localhost로 접속하면 Access denied for user 'root'@'172.17.0.1' (using password: YES) 다음과 같은 에러가 나면서 접속이 안된다. docker 에서 컨테이너 접속 $ docker exec -it bash mysql 접속 > mysql -u root -p 계정에 권한 부여 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.17.0.1' WITH GRANT OPTION; 다른 계정을 사용한다면 계정 생성 및 권한 부여 > CREATE USER 'admin'@'172.17.0.1' IDENTIFIED BY '비밀번호 입력'; > GRANT ALL PRIVILEGES ON *.* T.. 2023. 12. 12.
[Git] master -> main 합치기 (덮어쓰기) 로컬에서 프로젝트를 생성 후 깃 연결을 위해 git init 설정을 하면 master 브랜치로 생성되는데 Git Repository에서 프로젝트를 생성하면 main 으로 디폴트 브랜치가 생성된다. 기본 브랜치는 main 이기 때문에 push 나 pull이 제대로 되지 않는 경우들이 있다. 그래서 master 브랜치와 main 브랜치를 하나로 만들기 위해서 master 브랜치의 내용을 main으로 옮기고자 했다. 해당 방법은 main의 내용이 다 삭제됨으로 master와 동기화 하고 진행하는 걸 추천한다. git checkout master git branch main master -f git checkout main git push origin main -f 2023. 12. 7.