전체 글

전체 글

    [Git] error: The following untracked working tree files would be overwritten by checkout:

    develop 브랜치에서 다른 feature 브랜치로 checkout 하는데 다음과 같은 에러가 발생했다. error: The following untracked working tree files would be overwritten by checkout: 해결방법 추적하지 않는 파일을 제거하면 된다. # == 적용하지 않고 무엇을 해야할 지만 보고 싶을 때 == git clean -fd --dry-run # 또는 git clean -fdn # == 적용하고 싶을 때 == git clean -fd

    [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..

    FCM(Firebase Cloud Messaging)

    FCM 사용 이유 플랫폼에 종속되지 않고 push 메시지를 사용할 수 있다. 서버를 경유해서 실시간으로 push 메시지를 받으려면 사용자는 서버에 항상 접속하고 있어야 하는데 이는 사용자의 기기의 배터리 및 네트워크 리소스를 크게 낭비한다. FCM을 사용하면 메시징 서버를 중간에 둠으로써 낮은 배터리와 적은 네트워크 사용만으로도 메시지를 실시간으로 처리할 수 있다. 또한 iOS, Andriod, Web 에 각각 push 메시지를 보내려면 각각의 환경별로 개발해야하는데 이를 하나로 통합하는 솔루션이다.     Notification Server - 모바일 기기에서 push 알림을 전송하는 서버 - FCM 사용  Client App- 사용자의 모바일 기기에 설치된 앱 - pu..

    [Spring] 멀티 모듈 사용하기 - 루트 프로젝트에 자식 의존성 추가하기

    [Spring] 멀티 모듈 사용하기 - 루트 프로젝트에 자식 의존성 추가하기

    멀티모듈 사용하는 이유 서버를 여러개(api용, batch 용 등)를 사용하면 프로젝트를 여러개 만들어 사용하는데 프로젝트를 여러개 사용하는 경우 공통 코드를 사용할때 모든 프로젝트의 코드를 수정해주어야 한다. 이러한 불편한 점을 해결하기 위해서 멀티모듈을 사용하고자 한다. 멀티 모듈을 사용하면 코드를 분리해서 사용하기에 프로젝트별 코드 관리가 용이하다. 루트 프로젝트 생성하기 모듈을 담기 위한 루트 프로젝트를 생성하고 루트 프로젝트 안에서 모듈을 추가한다. 루트 프로젝트는 하위 모듈을 관리하는 역할만 하기 때문에 src 폴더를 삭제해도 된다. 모듈 추가하기 project 우클릭 > new > module 모듈을 추가한다. 모듈 추가 후 자식 모듈과 통신을 위해 루트 프로젝트 settings.gradle..

    [AWS] Amazon linux 2023 에 MySQL 8.0 설치

    [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..

    [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..

    [Git] master -> main 합치기 (덮어쓰기)

    [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

    [스프레드 시트] 구글 스프레드 시트에서 다른 시트에 있는 데이터를 원하는 데이터 추출하기 (모두 찾기/전체 검색)

    [스프레드 시트] 구글 스프레드 시트에서 다른 시트에 있는 데이터를 원하는 데이터 추출하기 (모두 찾기/전체 검색)

    개발을 하다보면 네이밍 관련해서 행정표준용어사전에 맞게 사용해야하는데 예를 들어 '번호' 라는 단어를 사용할 때 굉장히 많은 '번호'의 데이터를 확인할 수 있는데 원하는 단어를 찾을때까지 ctrl+f 의 다음 버튼을 누르면서 찾는것은 굉장한 에너지가 소모되는 일이다.. 엑셀에는 '모두찾기' 라는 기능이 있다고 하는데 구글시트에서는 찾지 못했으므로 내가 직접 작성해서 사용했다. =QUERY(IMPORTRANGE("구글시트링크", "'시트이름'!시트범위:시트범위"), "select A,C,D,E where C contains '"&A2&"' ",) IMPORTRANGE 뒤에 해당 구글 시트 링크를 입력하고 데이터를 가져오고자 하는 시트이름을 입력하고 띄어쓰기가 있는경우 ' ' 표시를 사용하고 ! 뒤에 가져올..

    [javascript] 이전 페이지 URL 확인하기 console.log(document.referrer)

    [javascript] 이전 페이지 URL 확인하기 console.log(document.referrer)

    이메일에 링크를 보낼 때 이전 페이지가 내가 원하는 페이지에 접속해 있던 사람만 해당 url 로 접속할 수 있고 다른 사람한테 공유가 되면 url 정보가 동일하지 않기 때문에 접속하지 못하게 하고 싶었다. 즉 특정 url 만 타고 넘어온 경우에만 내가 제공하는 url 에 접속할 수 있게 하고 싶었다. 개발자 도구에서 콘솔창에 해당 내용을 찍으면 이전 URI 정보를 반환하는데 console.log(document.referrer) 처음 화면에 들어가서 해당 콘솔을 찍으면 아무런 값이 안나오는 것을 볼 수 있다. 네이버에서 검색하고 페이지 이동 후 검색해보면 이전 페이지였던 네이버 주소를 확인할 수 있다. 현재 페이지에서 url 을 새로 입력하고 다른 페이지로 이동 후 콘솔을 찍으면 그것도 아무런 값이 안나..

    [AWS] EC2 안에 있는 RDS 에 DBeaver SSH 사용해서 접속하기

    [AWS] EC2 안에 있는 RDS 에 DBeaver SSH 사용해서 접속하기

    EC2에서 DB용 인스턴스 한개와 WAS용 인스턴스 한개, WEB용 인스턴스 한개 총 3개의 인스턴스를 띄워놓았다. RDS 에 접속 방법은 db용 인스턴스에 3306 포트를 열어두고 WAS용 인스턴스를 ssh를 이용해서 접속해서 사용하고자 한다. DBeaver 에서 연결하고자 하는 데이터베이스를 선택해준다. (MySQL) DB를 설치한 인스턴스정보를 입력해준다. Host : DB용 인스턴스의 퍼블릭 IPv4주소 Port : DB포트 Database : 설치한 DB의 정보 Username : DB 접속을 위한 아이디 Password : DB 접속 비밀번호 SSH 탭으로 이동해서 Use SSH 터널에 접속정보 입력한다. 여기에 WAS용 인스턴스 정보를 입력해준다. Host : 퍼블릭 IPv4 DNS 주소 입..