분류 전체보기

1. URI URI?URL?URN? 개념을 확실히 하고 넘어가야 한다. 리소스를 식별하는 URI안에 URL, URN이 존재한다. URI 자원이 어디에 있는지 자원 자체를 식별하는 방법이다. location이나 name 혹은 둘 다 추가로 분류될 수 있다. Uniform - 리소스를 식별하는 통일된 방식 Resource - 자원, URI로 식별할 수 있는 모든 것(제한 없음) 웹 브라우저의 파일만 뜻하는 게 아니다. 실시간 교통정보 등 우리가 구분할 수 있는 것은 모든 것이 리소스이다. Identifier - 다른 항목과 구분하는데 필요한 정보 URL(Location) 리소스의 위치를 뜻한다. URN(Name) 리소스의 이름을 의미한다. URN의 경우 리소스가 이름에 매핑되어 있어야 하기 때문에 이름으로 ..
컴퓨터는 인터넷에서 어떻게 통신할까? 이를 알기 위해 IP를 공부해야 한다. 1. IP란? 복잡한 인터넷에서는 규칙이 필요하다. IP= Internet Protocol 상대와 나의 IP가 있어야 통신이 가능하다. IP역할 지정한 IP주소에 데이터를 전달 패킷이라는 통신 단위로 데이터 전달 패킷에 들어가는 정보 출발지 IP 주소 (Source IP Address): 데이터가 보내진 곳의 IP 주소. 패킷을 생성하고 보낸 시스템의 IP 주소 목적지 IP 주소 (Destination IP Address): 데이터가 전송되어야 하는 곳의 IP 주소. 패킷이 도착해야 하는 시스템의 IP 주소 보낼 데이터 (Payload 또는 데이터 부분): 실제로 전송되는 데이터가 이 부분에 들어간다. 기타 필요한 헤더 정보 (..
영속성 컨텍스트 JPA에서 가장 중요한 2가지를 꼽아보면 1. 객체와 관계형 데이터베이스 매핑(ORM) 2. 영속성 컨텍스트 이그림을 설명하면 요청이 올 때마다 EntityManagerFactory를 통해 EntityManager를 생성하고, EntityManager는 내부적으로 DB 커넥션을 통해 DB를 사용한다. 영속성 컨텍스트? "영구 속성 저장" 인가? 맞다. "엔티티를 영구 저장하는 환경"이라는 듯이다. 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지는 않는다. EntityManager를 통해서 영속성 컨텍스트에 접근 가능하다. EntityManager.persist(entity); //Entity를 DB에 저장하는 코드. Entity를 영속성 컨텍스트에 저장하는 것이다. EntityManage..
1. 데이터베이스 방언 JPA는 특정 DB에 종속되지 않는다. 따라서 알아서 바꿔준다. 2. JPA구동 방식 Persistence 클래스가 META-INF/persistence.xml 설정 파일을 읽어서 EntityManagerFactory라는 클래스를 생성한다. 그리고 필요할 때마다 EntityManager를 만든다. EntityManagerFactory는 하나만 생성해서 전체에서 공유하고, EntityManager는 쓰레드간에 공유하지 않고 사용 후 버린다. JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다. 시작에 앞서 트랜잭션에 대한 기본적인 내용이 필요하다. 필요하다면 공부를 더 하도록 하고, 간단히 아래글로 개념만 잡아보자 트랜잭션? https://koreatstm.tistory.com/1..
자바 ORM 표준 JPA 기본편 인프런 김영한님의 '자바 ORM 표준 JPA 기본편' 강의 보러가기 https://www.inflearn.com/course/ORM-JPA-Basic# 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런 회사땜에 매일 바쁜 와중에 학원이라도 다닐까 생각했는데 마침 JPA 강의가 생겨서 꿀 타이밍이네요. 저는 이 전에 JPA 책을 보고 공부 했었는데요 궁금했던 점, 업무에 적용하며 고민하고 해결하 www.inflearn.com 김영한님 강의를 듣고 개인적으로 정리를 해보려고 한다. 단순히 개인 공부를 위한 개인정리글이다. https://dodeon.gitbook.io/study/kimyounghan-orm-jpa/01-jpa-introduction JPA 소개 -..
트랜잭션 트랜잭션의 정의는 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위이다. 이때, 상태를 변화시킨다는게 무슨 말일까? 말을 어렵게 했는데 쉽게 이야기해서 sql을 가지고 데이터베이스에 접근하는것이다. 흔히 말하는 SELECT, INSERT,DELETE,UPDATE를 가지고…. 작업단위라는게 있ㄴ다. 여러가지 쿼리문을 기준에 따라 정하는 것이다. 이때, 각 작업단위는 한문장이 아님에 유의해야한다. 예를들어 인스타그램에 글을 올리는 과정을 나눠보면 글을 작성하고, 작성한 글을 서버에 올리고, 서버에서 내가 작성한 글을 보는 과정을 거치는데, 글을 올리는 INSERT도 있을 것이고, 그 글을 찾는 SELECT도 들어갈 것이다. 이것을 합쳐서 하나의 단위 = 트랜잭션이라고 하는것이다. 트랜잭션에는..
먼저 객체를 생성하기 위해 생성자 패턴, 수정자 패턴, 빌더 패턴 등을 사용하는데, 왜 빌더 패턴을 사용해야 할까? 빌더 패턴은 생성 패턴 중 하나이다. 생성패턴이란? 인스턴스를 만드는 절차를 추상화하는 패턴. 예시를 들어보자 서브웨이~! 서브웨이 주문시 패티 종류와 야채등을 고른다. 누구는 할라피뇨를 넣고, 누구는 슈레드 치즈를 선택한다. 이처럼 유연하게 다양한 타입의 인스턴스를 생성할 수 있어, 클래스의 선택적 매개변수가 많은 경우에 적절하다. 빌더 패턴의 장점은 이렇다. 1. 가독성을 높인다. 아래와 같은 코드는 10,180,50이 뭘 말하는지 알기 쉽지 않다. Member member = new Member(20,180,50) 그럼 아래와 같은 코드는? Member member = Member.b..
Java에서는 예외 처리를 위해 try-catch를 사용해야 하지만 try-catch를 모든 코드에 붙이는 것은 비효율적이다. Spring은 전역적으로 예외를 처리할 수 있는 @ControllerAdvice와 @RestControllerAdvice 어노테이션을 지원한다. @RestControllerAdvice는 @ControllerAdvice와 달리 @ResponseBody가 붙어 있어 응답을 Json으로 내려준다는 점이 다르다. @ControllerAdvice @ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드에 AOP를 적용해 Controller 단에 적용하기 위해 고안된 어노테이션 @Controller에 대한 전역적으로 발생할 수 있는 예외를 처리..
계란소년
'분류 전체보기' 카테고리의 글 목록 (9 Page)