전체 글

[자바 ORM 표준 JPA 프로그래밍] 섹션2. JPA 시작하기
Hello JPA - 프로젝트 생성 강의와 다르게 진행한 점 DB 사용을 H2가 아닌 MySQL 사용 pom.xml 설정 dependency에 사용할 라이브러리를 적는다. 4.0.0 org.example ex1-hello-jpa 1.0-SNAPSHOT Archetype - ex1-hello-jpa http://maven.apache.org org.hibernate hibernate-entitymanager 5.3.10.Final mysql mysql-connector-java 8.0.28 라이브러리 버전 선택하는 방법 아래 페이지에서 내가 선택한 스프링 부트 버전의 Reference Docs > Dependency Versions를 확인한다. https://spring.io/projects/spring-..

[자바 ORM 표준 JPA 프로그래밍] 섹션1. JPA 소개
개요 JPA가 하는 일 반복적이고 단순한 SQL을 자동화하여 처리해준다. 과거에는 SQL을 직접 작성해야 했지만, 이제는 JPA에게 시키면 된다. JPA를 사용해서 얻는 이점 개발 생산성, 개발 속도가 증가하고 유지 보수에 용이하다. JPA를 실무에서 사용하기 어려운 이유 객체와 테이블을 올바르게 맵핑하고 설계하기 어렵기 때문이다. SQL 중심적인 개발의 문제점 SQL에 의존적인 개발 우리가 만드는 객체는 관계형 DB에 보관한다. 이 객체를 관계형 DB에 보관하려면, (저장하고/수정하고/삭제하고/조회하고 하려면) 수많은 쿼리 작성이 필요하다. 이게 바로 SQL 중심적인 개발의 문제점이다. 계속해서 INSERT INTO, UPDATE, SELECT, DELETE 쿼리를 무한 반복해야 하기 때문에 지루하다...

[오류 해결] 서버 404 Not found 해결
상황 SpringBoot 개발 도중 local에서 프로젝트 Run 하면서 Postman으로 API 테스트 하는 것은 아주 잘 되는데 서버에 jar 파일 배포 후 API URI로 API 호출을 하면 404 Not found가 뜨는 상황이 발생하였다. 우선 가장 먼저 살펴보아야 할 것은 URI에 오타가 없는지 이다. 필자는 죽어도 오타는 없어서 여러 방법을 동원해 해결하였다. 이번 오류에서 가장 이상했던 점은.. 특정 API는 되고 특정 API는 Not found가 뜨는 점이었다.. jar 파일이나 DB 문제가 아니라 판단하였기에 더욱 이상했다. 🥺 해결 방법 1. 우선 로컬 환경에서 빌드한 jar 파일을 서버로 전송하는 과정에서 "덮어쓰기"를 사용하고 있었는데, 이부분을 바꾸었다. 서버의 jar 파일을 삭..

[GCP] GCP Compute Engine Key 생성, FileZila로 파일 전송 (PuttyGen, Filezila)
GCP Compute Engie에서 SSH Key 생성하기 1. 본인의 VM 인스턴스에서 SSH 연결을 하여 서버로 접속한다. 필자는 가장 쉬운 방법으로 "브라우저 창에서 열기"를 선택하였다. 2. RSA Key Pair를 생성한다. dudrhy12@beyondvision-instance:~$ ssh-keygen -t rsa -f ~/.ssh/{키파일 이름} -C "{유저 구글 아이디}" 3. Key 값을 확인한다. cat ~/.ssh/beyondVision-RSAkey.pub 4. Key 값을 등록한다. 메뉴 > 설정 > 메타데이터 > SSH키 에 접속하여 방금 확인한 Key 값을 추가한다. 이후 이 값으로는 Putty에서 SSH 연결을 하거나 Mac에서 SSH 연결을 할 때 사용할 수 있다. Key ..

[오류 해결] SLF4J: Class path contains multiple SLF4J bindings. 해결
상황 SpringBoot 프로젝트를 Run 하던 도중 아래와 같은 오류가 발생했다. SLF4J: Class path contains multiple SLF4J bindings. 구글링을 해보니 SLF4J의 라이브러리가 중복되어 발생하는 문제였다. 해결 gradle이나 maven에서 중복 의존성을 제거하는 방법도 있지만 나는 중복해서 들어간 것은 없었다. 그래서 직접 프로젝트의 라이브러리 목록에서 확인하였다. (External Libraries에서 확인 가능) 많은 목록들 중 SLF4J 관련 라이브러리들이 보였고 이중 simple 이라는 이름이 포함된 jar 파일을 삭제하였다. rm C:\Users\CYS\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-simpl..

[AWS] #3. RDS 설정 및 EC2 연결
이번 포스팅에서는 AWS의 RDS를 생성하고, 이미 생성한 EC2와 연결하는 방법을 적어보겠습니다. 1. RDS 데이터베이스 생성 (1) AWS > RDS > 데이터베이스 > 데이터베이스 생성에 접근한다. (2) 아래와 같이 설정한다. 본인이 사용할 엔진 유형과 엔진 버전을 설정한다. 역시나 과금을 막기 위해 프리티어로 템플릿을 선택한다. 추후 DB를 연동할 때 꼭 필요한 정보이므로 DB 인스턴스 식별자, 마스터 사용자 이름, 마스터 암호를 꼭 따로 메모해두어야 한다. 위 구성은 프리티어 정책에 따라 기본값으로 유지한다. 외부에서 DB 접근이 가능하도록 퍼블릭 엑세스 항목을 "예"로 설정하고, VPC 보안 그룹을 새로 만든다. 초기 DB 이름 지정을 위해 추가 구성에서 이름을 작성한다. 2. RDS와 E..

[AWS] #2. nginx 적용 및 포트포워딩
앞 포스팅까지만 한다면, 주소창에 탄력적 IP 주소를 입력했을 때 연결 거부가 뜰 것이다. 이에 대한 해결방법인 nginix를 적용하는 방법과 더 나아가 포트포워딩 방법까지 다루어보려고 한다. nginx 설치하기 (1) EC2 서버에 접속한다. 저는 AWS 사이트 내에서 "EC2 인스턴스 연결" 메뉴를 통해 접속하였습니다. (2) nginx 설치, 실행하는 명령어를 입력한다. 명령어는 아래와 같으며 ubuntu 기준입니다. sudo apt update sudo apt install nginx sudo service nginx start sudo service nginx status (3) 마지막 명령어를 통해 nginx가 정상적으로 active 되어 있는지 확인한다. 보안그룹 설정하기 (1) 생성한 EC..

[AWS] #1 서버 배포를 위한 EC2 생성
프로젝트를 진행하다 보면, 내가 직접 서버를 열고 DB를 연결하는 경우가 생기는데 이때 해야 하는 일들을 하나의 시리즈로 포스팅 해보려 한다. EC2 인스턴스 생성하기 1. AWS 사이트에 접속하여 EC2 검색 후 "인스턴스" 메뉴를 클릭한다. 2. 우측 상단에 "인스턴스 시작" 버튼을 클릭한다. 3. 인스턴스 정보를 아래와 같이 설정한다. (1) 기본 이름을 설정하고 (2) Ubuntu로 서버를 설정한다. (3),(4) AMI와 인스턴스 유형은 프리티어를 사용한다. AWS는 첫 가입 1년 간은 프리티어로 서비스들을 저렴하게 사용할 수 있기에 프리티어 스펙으로 설정한다. (5) "새 키 페어 생성"을 클릭하여 키 파일을 다운로드 받는다. 추가 다운로드는 불가하니 보관에 유의해야 한다. 이는 서버에 접속하..