
AWS EC2/Linux 를 이용하여 프로젝트를 배포하는 과정에서 발생한 문제들과 그 문제들을 해결하는 과정들을 정리해보았습니다. 개요 AWS EC2를 프리티어로 이용할 경우 몇가지 큰 장벽이 있습니다. 이 글에서 중점적으로 다룰 내용 메모리 문제와 관련된 내용입니다. 디테일한 배포 절차에 대해 제가 참고한 글들은 제일 하단 '참고자료'에 링크로 첨부해두겠습니다. 기본 사항 프로젝트의 fron-end에 사용된 대표적인 기술은 React와 Nginx이며, 배포할 프로젝트는 비즈니스가 아닌 학습용으로 EC2 프리티어를 사용했습니다. 문제 발생 1. EC2/Linux 터미널을 통해 git clone 하여 프로젝트를 저장했습니다. 2. 웹 서버를 Nginx로 사용하여 배포하기 위해 React app을 build..

안녕하세요. 백엔드 개발자를 목표로 학습하는 주니어개발자입니다. 오늘은 JPA의 엔티티와 영속성컨텍스트를 학습한 내용을 간략하게 정리해보았습니다. 코드 예제보다는 이론 위주로 정리한 내용이라 JPA에 대한 기본 지식이 없을 경우 다소 어려울 수 있다고 있을 것 같습니다. 1. 엔티티(entity) 엔티티는 DB 테이블과 매핑하기 위한 객체입니다. @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String userName; @Embedded private Address homeAddress; ... } 위 예제는 엔티티를 ..
안녕하세요. 현재 백엔드 개발자를 목표로 취업을 준비중인 주니어 개발자입니다. 기존에 사용 중인 Object Mapping 기술인 Mybatis를 대신하여 Object Relational Mapping 기술인 JPA를 사용하고자 학습하게 되었으며, 학습 과정에서 알게된 내용을 바탕으로 JPA가 무엇인지, 그리고 왜 사용해야 하는지에 대한 내용을 정리해 보았습니다. What is JPA? 1. Java Persistence API. 즉, 자바 영속성 API를 뜻합니다. '영속성' 이란? 지속성이라고도 하며, 데이터를 생성한 프로그램이 종료되어도 사라지지지 않는 데이터의 특성을 말합니다. 저의 경우 처음 학습을 시작했을 때 위의 영속성의 정의를 JPA의 동작 방식과 연관하여 이해하기 쉽지 않았습니다. 하여 ..
2023년 1월 1일 velog에 포스팅한 내용을 이전한 게시글입니다. 배포시 사용한 기술과 버전은 아래와 같습니다. Spring Boot 2.7.5 Java 11 MySQL 8.0.31 Tomcat 9 Maven 이미 구글에 많은 정보가 있음으로 자세한 절차는 생략하고 문제와 결과만 공유하겠습니다. apache-tomcat을 EC2 C드라이브에 설치 후 webapps 폴더에 project의 WAR파일을 이동시켰습니다. 저는 View가 JSP임으로 WAR를 사용했습니다. SpringBoot의 권장사항은 JAR파일입니다. 참고 ㅣ https://velog.io/@mooh2jj/JAR-vs-WAR-배포의-차이 그 후 기존 제 local 환경에서 사용하던 URL을 EC2의 브라우져에서 요청시 404가 발생했습..
2022년 11월 17일 velog에 포스팅한 내용을 이전한 게시글입니다. 문제 정의 Axios post방식을 통해 넘어온 데이터를 2개의 테이블에 저장해야하는 상황. (결제 내역, 예매 내역) json 형식으로 넘어오는 json 데이터 객체를 서버에서 데이터를 어떻게 처리할지 고안 필요. 제약 조건 jsonArray가 아닌 jsonObject로 요청. 데이터를 담는 객체인 DTO(Vo)를 새로 만들지 않고 기본 테이블을 활용. 위 조건으로 진행하는 이유는 기존 자주 사용하던 방식을 탈피한 새로운 방식으로 데이터 처리를 해보고자 제약을 두었습니다. 문제 해결 절차 1. front에서 아임포트를 통해 결제를 성공 후 결제내역과 예매내역을 json 형태로 만들어 데이터 저장을 요청. 2. 여러가지 시도를 통..
2022년 11월 15일 velog에 작성된 내용을 이전한 게시글입니다. 현재 진행중인 사항 아임포트를 통해 결제 후 axios를 사용하여 백엔드로 결제한 내역을 보내기 완료. 결제와 예매 테이블에 데이터를 연달아 insert시켜야 하는 상황. 진행과정 중 문제점 (Mybatis를 사용중임으로) Mapper에 SQL을 작성하는 과정에서 아래 SQL문처럼 values에 잘못된 형태로 입력하여 정상적인 값이 들어가지 않았음. 특히 오류가 발생하지 않고 로우(레코드)에 0으로 입력되어 해결하는데 어려움을 겪음. insert 테이블명 values (컬럼명 = 값, 컬럼명 = 값,... ERD 설계시 중요엔티티의 역할을 확실하게 분류하지 않아 까다로운 수정 절차가 발생함. (좌석 테이블의 경우 예매 내역과 중요한..
- Total
- Today
- Yesterday