프로젝트
-
JPA 게시판 엔티티 만들기프로젝트/게시판 프로젝트 2022. 6. 23. 16:19
목표 회원이 작성하는 게시글의 Entity를 만들자 회원과 게시글의 연관관계 회원은 게시글을 여러 개 쓸 수 있습니다. 이에 따라 회원과 게시글의 관계는 1 : N으로 볼 수 있습니다. 회원 1명은 게시글 N개를 가질 수 있음 "JPA 1:N 연관관계" 키워드에 대해 검색해보겠습니다. 1:N 연관관계에 대해서 알아보기 전에 JPA의 연관관계에 대해서 먼저 학습하겠습니다. JPA 연관관계 매핑 정리 엔티티는 다른 엔티티의 참조를 가지면서 서로 관계를 맺게 됩니다. 회원이 게시글을 작성하는 경우 게시글 엔티티는 회원 엔티티 필드를 가지면서 서로 연관관계를 맺어 해당 게시글을 작성한 회원을 조회할 수 있습니다. 또한 서로 연관관계를 맺으면 회원이 어떤 게시글들을 작성했는지를 알 수 있습니다. 객체와 DB의 방..
-
Jackson ObjectMapper의 동작과정프로젝트/게시판 프로젝트 2022. 6. 20. 11:07
이 글은 아래의 정보들을 다루었습니다. ObjectMapper란? ObjectMapper를 사용하던 중 발생한 에러 발생과 해결방법 ObjectMapper의 동작과정(리플랙션과 기본생성자, Getter/Setter) Object Mapper란? Object Mapper는 데이터의 형식을 변환해줍니다. 아래 예시와 같이 데이터의 형식을 변환할 수 있습니다. Text(Json) -> Object Object -> Text(Json) 보통 Spring에서 api를 개발하다 보면 @ResetController를 많이 사용합니다. 이때 request와 response에서 json -> 객체, 객체 -> json의 과정은 MessageConverter에 의해 처리됩니다. MessageConverter가 json 변..
-
AWS EC2 build 무한로딩 에러(EC2 메모리 부족 현상 대처)프로젝트/게시판 프로젝트 2022. 6. 16. 02:43
문제가 발생한 상황 문서화 작업을 추가하여 githun에 push 하고 AWS EC2로 접속하여 git pull을 받아 새롭게 REST API 서버를 띄우려고 했습니다. ./gradlew build 명령어를 수행하던 중 테스트 부분에서 더 이상 퍼센티지가 올라가지 않으며 시간만 지나가는 상황이 발생하였습니다. 처음에는 당황하여 SSH를 그냥 닫아버리자 한동안 연결이 되지 않기도 하였습니다. 이후에 상황을 재구성 하였을 때 똑같은 상황이 발생했고 Ctrl + Z를 사용하여 해당 쉘 스크립트로부터 빠져나오고 그 뒤로부터는 EC2 환경에 엄청나게 버벅거리기 시작합니다. 이후에 sar 명령어를 사용하여 시스템 자원을 얼마나 사용하고 있는지 확인하고자 하였는데 메모리 사용량이 95%에 육박한 것 같았습니다. 저와..
-
AWS EC2에 스프링부트 프로젝트 배포하기프로젝트/게시판 프로젝트 2022. 6. 14. 02:38
AWS 가입 및 EC2 인스턴스 생성(1) EC2 자바 11 설치 및 타임존 설정(2) AWS RDS 구축하기(3) AWS EC2에 스프링부트 프로젝트 배포하기(4) 현재 RDS와 EC2를 모두 구축해 놓은 상황입니다. 깃허브에서 코드를 받아올 수 있게 EC2에 Git을 설치합니다. 1. putty를 통해 EC2에 접속하여 git --version 명령어를 입력합니다. 현재 git이 설치되어 있지 않습니다. 2. sudo yum install git 명령어로 git 설치 이제 git이 설치되었습니다. 3. git clone으로 프로젝트를 저장할 디렉터리 생성 mkdir ~/app && mkdir ~/app/step1 ls 명령어로 디렉토리가 잘 생성되었는지 확인할 수 있습니다. 만약 잘못 생성해서 다시 ..
-
AWS RDS 구축하기프로젝트/게시판 프로젝트 2022. 6. 11. 00:01
AWS 가입 및 EC2 인스턴스 생성(1) EC2 자바 11 설치 및 타임존 설정(2) AWS RDS 구축하기(3) AWS EC2에 스프링부트 프로젝트 배포하기(4) "AWS RDS 사용하기" 시작하겠습니다 RDS란? AWS에 데이터베이스를 직접 설치하게 되면 모니터링, 알람, 백업 , HA 구성등을 모두 직접 하게 됩니다. 이러한 작업들이 번거롭기 때문에 AWS에서는 위에 언급한 작업들을 모두 지원하는 Relational Database Service를 제공합니다. RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스입니다. 데이터베이스를 다룰 때 RDS VS EC2에 대해 조금 더 자세하게 알고 싶으시다면 다음 글을 참고하시면 좋을 것 같습니다. https://junuuu.tistory.co..
-
EC2 자바 11 설치 및 타임존 설정 , HostName 변경프로젝트/게시판 프로젝트 2022. 6. 10. 00:01
AWS 가입 및 EC2 인스턴스 생성(1) EC2 자바 11 설치 및 타임존 설정(2) AWS RDS 구축하기(3) AWS EC2에 스프링부트 프로젝트 배포하기(4) 1. 설치 가능한 Java 리스트 검색 : yum list java* 여러가지들이 나오는데 여기서 Java11을 다운로드하겠습니다. yum이란 Yellowdog Update Modified의 약자로 리눅스 배포판에서 사용하는 프로그램 설치 관리 도구입니다. 명령어만 보면 전혀 기능과 관계없어 보이지만 yum 명령어를 통해 패키지 의존성 문제를 자동으로 처리하면서 설치, 업데이트, 삭제를 진행할 수 있습니다. 2. 설치 : yum install java-11-amazon-corretto.x86_64 위의 명령어를 입력해보니 아래와 같은 에러가..
-
AWS가입 및 EC2 인스턴스 생성프로젝트/게시판 프로젝트 2022. 6. 9. 01:16
AWS 가입 및 EC2 인스턴스 생성(1) EC2 자바 11 설치 및 타임존 설정(2) AWS RDS 구축하기(3) AWS EC2에 스프링부트 프로젝트 배포하기(4) 1. AWS 가입(공짜 1년을 얻기 위해 새로 가입해 보겠습니다) AWS 사이트 1-1단계 이메일 입력 -> 이메일 인증 1-2단계 연락처 정보 입력 1-3단계 신용카드 정보 기입(체크카드도 됩니다) 단! Master 혹은 Visa 카드 1-4단계 휴대전화 인증 1-5단계 Support Plan 선택(기본 지원 - 무료 선택) 2. EC2 인스턴스 생성하기 AWS에서 리눅스 서버 혹은 윈도우 서버를 사용한다는 것이 EC2를 사용한다는 것과 동일한 이야기입니다. AWS에서 무료로 제공하는 프리티어 플랜에서는 EC2 사용에 다음과 같은 제한이 ..
-
SpringBoot CI/CD 도입전 분석(젠킨스 vs 트레비스)프로젝트/게시판 프로젝트 2022. 6. 8. 03:39
예전에 CI/CD를 공부하기 위해 간단하게 정리한 글이 있었습니다. https://junuuu.tistory.com/21 [Java] 배포란?(+ CI/CD) 배포란(Deploy) 작성한 코드를 빌드하고, 빌드가 완성된 실행 가능한 파일(jar war)을 사용자가 접근할 수 있는 환경에 배치한 것 즉, 빌드를 하고 생성된 jar 또는 war 파일을 WAS에 올리는 거나 .exe junuuu.tistory.com CI : Continuous Integration 개발자를 위한 자동화 프로세스로 지속적인 통합하는 방식 만약 주기적으로 통합을 하지 않고 오래 시간이 지난 후 통합을 하면 큰 충돌이 날 확률이 높습니다. CD : Continuous Deployment 또는 Continuous Delivery D..