분류 전체보기411 자바 ORM 표준 JPA 프로그래밍 : 영속성 관리 (3장) 📌 엔티티 매니저 팩토리와 엔티티 매니저 🧷 엔티티 매니저 팩토리 팩토리를 만들기 위해서는 많은 비용을 요구한다. 하나만 만들어서 애플리케이션 전체에서 사용한다. 설정 정보(persistence.xml)를 바탕으로 생성한다. 서로 다른 스레드 간에 공유해도 문제가 없다. 🧷 엔티티 매니저 생성하는데 비용이 거의 들지 않는다. 동시성 문제 때문에 스레드 간에 공유 금지. 필요한 시점까지 커넥션을 얻지 않는다. 보통 트랜잭션을 시작할 때 커넥션을 얻는다. 엔티티 매니저 팩토리를 생성할 때 커넥션풀도 만드는 방법은 J2SE 환경에서 사용하는 방법이다. 대부분의 JPA 구현체들이 사용하는 방법이다. 📌 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context.. 2022. 9. 26. [Spring] AOP (feat. Proxy Pattern) ✍️ 학습 목표 AOP 이해하기 프록시 패턴이란? 📌 AOP Spring의 핵심 전략 중 하나인 AOP는 Aspect Oriented Programming의 약자이다. AOP은 횡단 관심사의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 위키백과에서 가져온 정의는 역시 전혀 와닿지 않는다. 그림으로 이해해보자. 🧷 Before AOP 위 그림을 보면 각 클래스들은 중복되는 부분을 가지고 있다. 이렇게 구현하면 A 클래스에 구현된 주황색 코드를 수정하게 된다면 클래스 B, C에 구현된 모든 코드를 수정해야 한다. 당연히 중복된 모든 코드를 수정하기 힘들 것이고 나아가 유지보수도 힘들 것이다. 🧷 After AOP AOP를 적용하게 된다면 다음과 같이 중복된 코드를 모듈화하여 .. 2022. 9. 21. [Java] Java 예외 처리 ✍️ 학습할 것 자바에서 예외 처리 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 RuntimeException과 RE가 아닌 것의 차이 커스텀 예외 만드는 방법 📌 자바에서 예외 처리 (try, catch, throw, throws, finally) 프로그램 실행 중에 어떤 문제 때문에 오작동하거나 비정상적으로 종료되는 경우를 오류(Error)라고 한다. 보통 오류는 다음과 같이 3가지로 구분할 수 있다. 컴파일 에러 : 컴파일 시 발생하는 오류 런타임 에러 : 실행 도중에 발생하는 오류 논리 에러 : 실행은 되지만 의도치 않은 동작을 유발하는 오류 컴파일러를 통해 문제없이 컴파일을 마친다고 해서 런타임에 발생하는.. 2022. 9. 20. [Python] 백준 9944번 : NxM 보드 완주하기 https://www.acmicpc.net/problem/9944 9944번: NxM 보드 완주하기 N×M 보드 위에서 할 수 있는 게임이 있다. 보드는 크기가 1×1인 정사각형 칸으로 나누어져 있다. 보드의 각 칸은 빈 칸 또는 장애물이다. 장애물은 아래 그림에선 어두운 사각형으로 표시되어져 www.acmicpc.net 💡 문제 풀이 간단한 구현 문제이다. 백트래킹을 곁들인. 백트래킹을 하면서 매번 2차원 배열을 복사하면 메모리가 너무 커지기 때문에 방문했던 좌표들을 처리하는 리스트를 새로 만들었다. ✔️ 느낀 점 어렵지 않은 구현 문제였다. 이전에 예외처리를 하는 문제를 풀어봐서 괜찮았다. 💻 코드 import sys input = sys.stdin.readline MAX = 1000001 ans, .. 2022. 9. 18. 자바 ORM 표준 JPA 프로그래밍 : JPA 시작 (2장) 📌 객체 매핑 시작 JPA를 사용하려면 가장 먼저 클래스와 테이블과의 매핑이 필요하다. 매핑을 위해서 JPA에서 제공하는 어노테이션(javax.persistence.*)을 추가해야 한다. 🌀Entity 클래스를 테이블과 매핑한다고 JPA에게 알려주는 어노테이션이다. 이 어노테이션이 붙은 클래스를 엔티티 클래스라고 부른다. 🌀Table 엔티티 클래스에 매핑할 테이블 정보를 알려주는 어노테이션이다. name 속성으로 어떤 테이블과 매핑할지 설정할 수 있다. 만약 생략한다면 엔티티 이름을 사용한다. 🌀Id 엔티티 클래스의 필드를 기본 키(PK)에 매핑하는 어노테이션이다. 이 어노테이션이 붙은 필드를 식별자 필드라고 한다. 🌀Column 필드를 칼럼에 매핑하는 어노테이션이다. 매핑 어노테이션을 생략하면 필드명을.. 2022. 9. 15. [Spring] Servlet, 서블릿 ✍️ 학습 목표 Servlet 이해하기 Servlet Container 알아보기 📌 Servlet MVC 패턴에서 사용되는 Controller는 Servlet을 활용한 기술이다. 따라서 MVC 패턴을 준수하는 스프링 공부하기 위해선 Servlet에 대한 이해도 필수적이다. Servlet이란? 클라이언트의 요청을 처리하고, 처리 결과로 반환해주는 Java 기반의 CGI이다. CGI : 웹 서버 상에서 User Program을 동작시키기 위한 조합 ✔️ Servlet의 특징 결국 Servlet은 기존 웹 서버의 문제를 개선하고 동적인 여러 기능을 지원한다. 너무 기계적으로 적어둔 글이 많아서 핵심만 요약했고, 내용은 다음과 같다. 클라이언트의 요청에 대해 정적으로 작동하던 기존의 웹 프로그램의 문제점을 보완.. 2022. 9. 15. 이전 1 ··· 19 20 21 22 23 24 25 ··· 69 다음