본문 바로가기

분류 전체보기

(89)
[JPA] JPA와 ORM과의 관계 JPA란 자바 ORM 기술에 대한 API 표준 명세를 의미합니다. JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이며, JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 합니다. 참고사이트 https://victorydntmd.tistory.com/195 [Spring JPA] ORM과 JPA 그리고 Hibernate 2020.03.06 수정 1. JPA ( Java Persistent API )와 ORM ( Object Relational Mapping ) JPA JPA란 자바 ORM 기술에 대한 API 표준 명세를 의미합니다. JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이며, J.. victo..
[Spring] Log4j2를 Profile에 따라 다르게 사용하기 SpringBoot SpringBoot의 경우 소스코드를 직접 구현하거나 수정할 필요없이 간단한 설정으로 처리 가능하다 resources의 application-{Profile}.properties 파일을 추가하면 프로파일에 해당하는 설정정보를 가져온다. 가령, application-dev.properties 라는 파일이 있다면 현재 프로파일이 dev 인 경우 해당 파일을 읽는다. application-prd.properties 가 있다면 프로파일이 prd 인 경우 해당 파일을 읽는다. 그러면 프로파일에 맞는 속성파일에 log4j 설정파일 경로를 설정한다. logging.config=classpath:log4j2-dev.xml ServletContainerInitializer 서블릿 기반 웹이면 Serv..
[Git] 이클립스에서 Git Conflict 해결하는 방법 Git을 사용하다보면 Conflict가 발생하는 경우가 종종 발생합니다. Conflict가 발생하는 이유 현재 Local의 파일과 Remote의 파일의 동일한 라인의 내용이 다른 경우 발생 Conflict가 발생할 경우 해결 방법 로컬에서 git에 commit하지 않고 그대로 pull 받는 경우 -> Mark as Merged 기능 사용 로컬 소스를 git에 commit해야 하는 경우 -> Merge Tool 기능 사용 로컬 소스를 git에 commit해야 하는데 pull에서 Conflict가 발생하는 경우 -> Text Compare 사용(가장 원시적이지만 확실한 방법) Conflict 파일을 내 변경 내역을 '백업'받아놓고 현재 로컬 Commit 버전으로 되돌리고 pull받고 다시 내 변경내역을 파일..
[Spring] Request Mapping MediaType 설정 Mapping을 할때 우리는 받고싶은 데이터를 강제를 함으로써 오류상황을 줄일 수 있다. 이걸 위해 사용하는 것 중 하나가 Media Types이다. 들어오는 데이터와 나가는 데이터를 정하여 처리를 할 수 있다. consumes는 들어오는 데이터 타입을 정의할 때 사용하고 produces는 반환하는 데이터 타입을 정의할 때 사용한다. 예를 들어서 내가 json타입을 받고 싶다면 아래와 같이 처리가 가능하다. @PostMapping(path = "/pets", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public void addPet(@RequestBody Pet pet) { // .....
[Network] TCP Socket Programming 프로젝트를 진행하다가 비동기통신/HTTP2 관련된 기술 내용을 다루던 중 TCP Socket 통신 기술이 언급되어서 한 번 정리 해본다. TCP는 두 종단간 신뢰성 있는 데이터 전송을 보장한다. 이를 위해 TCP에서 어떻게 연결 세션을 맺고 끊는지 알아보며, 마지막에는 Socket API와 TCP flow를 매핑하여 흐름을 알아보자. 1. TCP 3-way handshake 두 장치들 사이에 논리적인 접속을 성립 (establish)하기 위하여 TCP에서 사용하는 방법 - 정확한 전송을 보장하기 위해 상대방 장치와 사전에 세션을 수립하는 과정을 의미한다. TCP 3-way handshaking TCP 3-way handshaking 과정 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 클..
[JPA] @OneToMany/@ManyToOne Join Annotation 사용법 연관 관계 매핑 테이블 간의 연관 관계가 있을 때, 객체지향스럽게 사용하는 방법을 제공한다. 기존의 데이터베이스에서는 외래 키를 사용하나 JPA에서는 객체를 참조하는 방식으로 연관 관계를 매핑 할 수 있다. 테이블 중심으로 모델링을 하게 되면, 외래 키를 가지고 데이터를 찾기 때문에 객체지향스럽지가 못하기 때문에, 객체 중심으로 관계를 매핑하고 모델링하는 것이 중요하다 본 포스팅에서 다루게 될 용어는 아래와 같다. 방향 : 단방향, 양방향 다중성 : 다대일, 일대다, 일대일, 다대다 연관관계의 주인 : 객체 양방향 연관관계는 관리 주인이 필요 일대다 [1:N] 일대다 관계에서는 일이 연관관계의 주인이다. 일 쪽에서 외래키를 관리하겠다는 의미가 된다. 결론을 먼저 말하자면, 표준스펙에서 지원은 하지만 실무..
[IT상식] RFP, RFI, RFQ 란 무엇인가? 직장인이 꼭 알아야 할 용어 중 제안서와 관련된 RFP, RFI, RFQ에 대한 의미와 작성법을 적어봤습니다. RFP Request For Proposal이라 의미로, 흔히 제안 요청서라고 불립니다. 프로젝트 담당할 최종 업체를 선정하기 전, 1차로 선별된 업체들에게 보내는 문서인데요. 원하는 요구 사항을 체계적으로 정리한 문서라고 볼 수 있습니다. 제안 요청서에는 프로젝트의 주제, 목적, 목표, 내용, 기대성과 등 진행할 업무 내용에 대한 자세한 사항이 들어가는데요. 요청한 프로젝트의 과정과 결과를 확인할 때, 기입된 내용을 토대로 측정해볼 수 있기 때문입니다. 또한, 추후에 발생할 수 있는 업체 간 의견 충돌을 최소화해주는 역할까지 담당하고 있습니다. 작성법 제안 요청서의 핵심은 상대방이 RFP만 보..
[Network] HTTP(Hyper Text Transfer Protocol)의 기본 개념과 HTTPS와의 차이점 1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다. [ HTTP의 구조 ] HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한..