5. 싱글톤 (순수한 DI컨테이너)AppConfig는 호출할 때마다 다른 객체를 생성 고객 트래픽이 초당 100이 나오면 초당 100개 객체가 생성되고 소멸 = 메모리 낭비가 심함 해당 객체가 딱 1개 생성되고, 공유하도록 설계 = 싱글톤 패턴 싱글톤 패턴 싱글톤 패턴 구현 방법은 여러가지 객체 인스턴스를 2개 이상 생성되지 못하도록 만듦 package hello.core.singleton; import static org.junit.jupiter.api.Assertions.*; class SingletonService { private static final SingletonService instance = new SingletonService(); public static SingletonServic..
생성 JPA EJB 엔티티빈(사용 어려움)이 등장 후 하이버네이트가 나왔고, 표준으로 JPA가 됨 JPA는 표준 인터페이스이고 구현체로 하이버네이트, EclipseLink 등이 있음 스프링 로드 존슨 EJB의 문제점 지적 후 생긴 기술 스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 웹기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 테스트: 스프링 기반 테스트 지원 언어: 코틀린, 그루비 스프링 부트 스프링을 편하게 사용할 수 있도록 지원 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 (톰..
DAO Data Access Object 데이터베이스의 data에 접근하기 위한 객체, 데이터베이스의 통신 데이터베이스에 접근하기 위한 로직을 분리하기 위해 사용 Repository DTO & VO DTO Data Transfer Object Table 계층 간 데이터 교환을 하기 위해 사용하는 객체 Entity 비슷하지만 목적 자체가 전달이므로 일회성으로 사용되는 성격이 강함 로직을 가지지 않는 순수한 데이터 객체 - getter & setter만 가진 클래스 (setter 있으면 가변 객체) DB의 데이터가 Presentation Logic Tier로 넘어오게 될 때는 DTO의 모습으로 바뀌어 오고 가는 것 setter의 경우 변조 가능성이 있으므로 생성자로 값을 넣어주면 변조 불가능하게 만듦 (불변..
자바측 API 모든 언어는 API 통신을 위한 라이브러리들이 있음 (예를들어 js에서 비동기 통신을 이용한 카카오, 구글api) 자바에서는 java.net 패키기의 URL클래스, HttpURLConnection클래스 이용하거나 외부라이브러리 HttpClient 이용 js에서 ajax로 하는 것을 java에서는 아래의 방식으로 사용 통신 방법 1. HttpURLConnection 객체 생성 URL url = new URL(요청주소); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 2. 요청 메서드 설정 conn.setRequestMethod("POST"); conn.setDoOutput(true); //상대방 서버로부터 결과를 받아오..
Connectionsless Protocol 웹 서비스는 HTTP 프로토콜 기반, 요청(request)에 대한 응답(response) 후 관계를 끊음 인증되지 않은 사용자는 모든 페이지에서 인증과정을 거쳐야 하는데 지속적인 인증 수단으로 세션과 쿠키를 사용 session 스프링 MVC의 세션 2가지 public String updatePage(HttpServletRequest request) {...} HtteServletRequest: 파라미터로 HtteServletRequest를 받을 후 getSession()을 세션 얻음 public String MyPage(HttpSession session) {...} Httpsession: 파라미터로 Httpsession을 받아 세션 사용 session 메서드..