공부

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

    [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 뒤에 해당 구글 시트 링크를 입력하고 데이터를 가져오고자 하는 시트이름을 입력하고 띄어쓰기가 있는경우 ' ' 표시를 사용하고 ! 뒤에 가져올..

    [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 주소 입..

    [AWS] CodeBuild, CodeDeploy, CodePipeline 에서의 IAM 역할 정보

    [AWS] CodeBuild, CodeDeploy, CodePipeline 에서의 IAM 역할 정보

    서비스 연결을 하다가 정책 권한으로 오류가 생길때마다 추가하면서 진행했기에 여기에 모든 정책이 다 필요한게 아닐 수도 있다. CodeBuild 에서 사용하는 IAM 정보 CodeDeploy 에서 사용하는 IAM 정보 ECR 을 사용하고 있어서 정책을 만들어서 역할에 추가해주었다. ecr-codedeploy-docker [계정ID] 부분만 본인의 계정정보를 넣어서 사용하면 된다. { "Version": "2012-10-17", "Statement": [ { "Sid": "ListImagesInRepository", "Effect": "Allow", "Action": [ "ecr:ListImages" ], "Resource": "arn:aws:ecr:ap-northeast-2:[계정ID]:repository..

    [AWS] AWS EC2 Docker 접근 오류 : permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

    [AWS] AWS EC2 Docker 접근 오류 : permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

    Docker 를 사용하려고 하는데 다음과 같은 권한 에러가 생겼다. permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied 해당 에러가 생기는 이유는 사용자가 /var/run/docker.sock에 접근할 수 없어서 생기는 에러로 권한을 변경한다. sudo chmod 666 /var/run/docker.sock 하지만 root 권한으로 실행하는 것은 권장하지 않기에..

    [AWS] ECR error - An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid.

    [AWS] ECR error - An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid.

    ecr을 사용하기 위해 aws-cli 로 접속을 시도했는데 에러가 나면서 접속이 되지 않았다. An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid. Error: Cannot perform an interactive login from a non TTY device 먼저 aws-cli 가 설치되어 있는지 확인한다. aws-cli 가 설치되어 있는데도 되지 않는다면 보안 토큰에 문제가 있는것으로 aws access key를 생성해주면 해결된다. 액세스키 추가하기 IAM > 사용자 > 사용자 ..

    [Docker] 이미지 빌드 플랫폼 호환성 관련 에러 - The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested

    docker run 을 했을 때 다음과 같은 호환성 에러가 나오고 도커 이미지가 빌드되지 않았다. WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested 현재 사용하고 있는 맥북은 Apple M1칩인데 이미지 빌드시 ec2서버와 m1 맥북간의 호환성이 안맞는 문제였다. 이미지 빌드할 때 플랫폼에 대해 작성하고 빌드하고 도커를 다시 run 해준다. docker build --platform linux/amd64 -t test:latest

    [AWS] EC2 SSH 연결 하기 네트워크,라우팅 설정 (22포트 연결 안됨)

    [AWS] EC2 SSH 연결 하기 네트워크,라우팅 설정 (22포트 연결 안됨)

    EC2 생성하고 SSH 접속을 하면 접속이 안되었다. 이유는 여러가지가 있을텐데 네트워크 설정이 되어 있다면 보안 그룹에서 22포트를 열어주면되고 22포트를 열어줘도 연결이 되지 않는 경우가 있는데 그러한 경우에는 인터넷 게이트웨이와 라우팅 설정을 해주어야 한다. VPC 생성 기본값으로 생성해준다. 서브넷 생성 가용 영역만 선택해주고 나머지는 기본값으로 생성한다. 가용 영역은 a,c 두개를 생성해준다. 인터넷 게이트웨이 생성 및 연결 ec2와 연결할 수 있는 방법은 4가지가 있다. 해당 방법만 가지고는 ec2 인스턴스 연결과 ssh 클라이언트 연결이 안되는 것을 확인할 수 있다. ssh 연결을 위해서는 라우팅테이블에 인터넷 게이트웨이 설정을 해주어야 한다. 인터넷 게이트웨이 생성 이름 태그를 작성해서 생..