일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- javac
- classloader
- java
- RDD
- 도커네트워크
- MethodArea
- 42seoul
- LSP
- 운영체제
- pg_hba.conf
- JVM
- JIT
- 42서울
- Compiler
- HeapArea
- 자바컴파일러
- 이노베이션아카데미
- 제네릭스
- StackArea
- 포함관계
- Operating System
- la-piscine
- 바이트코드
- generics
- SRP
- 참조변수
- 상속관계
- jdk
- 라피신
- abstract
- Today
- Total
목록CS/spring (17)
while(1) 작심삼일();
ArgumentResolver(HandlerMethodArgumentResolver.interface) : 어노테이션 기반 컨트롤러를 처리하는 RequestMappingHandlerAdapter가 스프링이 지원하는 30개가 넘는 ArgumentResolver에게 호출을 해서 컨트롤러(핸들러)가 필요로 하는 다양한 파라미터들을 생성 (ex. HttpServletRequest/Response, InputStream, @RequestBody, @RequestParam 등..) ReturnValueHandler(HandlerMethodArgumentResolver.interface) : 컨트롤러에서 응답 값을 변환하고 처리함. (ex. ModelAndView, @ResponseBody, HttpEntity, S..
WS(Web Server) : 정적 리소스 처리 WAS(Web Application Server) : 애플리케이션 로직을 수행 함. 자바의 경우 서블릿 컨테이너를 제공하면 WAS WS - WAS 구조로 나누는 이유는 WAS 서버 과부화를 방지하기 위해 정적 리소스는 WS가 처리하게 하고, 비즈니스 로직이 실행되는 WAS가 죽을 경우 에러페이지도 보여줄 수 있고, 정적 리소스가 많이 사용되면 WS 증설을, 애플리케이션 로직이 많이 사용되면 WAS 증설을 하는 등과 같이 효율적으로 리소스를 관리할 수 있음 서블릿 : 클라이언트 요청을 처리하고 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 클라이언트가 URL을 입력하면 HTTP Request가 Servlet Containe..
최대한 Setter를 사용하지 않는다. 어디서 값이 바뀌는지 확인이 어렵기 때문에 유지보수가 어렵다. 추후 리팩토링으로 Setter를 제거한다. Entity 클래스 간 모든 연관관계는 지연로딩으로 설정한다. 즉시로딩은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. JPQL을 실행할 때 N + 1 문제가 자주 발생한다. @*ToOne관계는 디폴트가 즉시로딩이므로 지연로딩으로 직접 설정해주어야 한다. 컬렉션은 필드에서 초기화한다. 당연하겠지만 null 문제에서 안전할뿐더러, 하이버네이트가 Entity를 영속화할 때, 컬렉션을 감싸서 자체 내장 컬렉션으로 변경하는데 임의의 메서드에서 컬렉션을 잘못 생성하면 하이버네이트 자체 매커니즘에서 문제가 발생할 수 있다. ※ 스프링 부트와 JPA 활용1 - 웹..
H2 데이터베이스는 DB자체가 매우 가볍고 빠르다. 다른 DBMS들과 마찬가지로 표준 SQL의 대부분이 지원된다. 이러한 장점들 때문에 어플리케이션 개발 단계의 테스트 DB로서 많이 사용된다. 설치방법) https://www.h2database.com 다운로드 및 설치 ./h2/bin/h2.sh 실행 JDBC URL 설정 -> jdbc:h2~/${name} ~/${name} 경로 .db파일 생성 확인 jdbc:h2:tcp://localhost/~/${name} 를 통해 접속 JPA와 DB 설정) main/resources/application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/${name} username: sa password: drive..

인텔리제이에서 command + shift + a를 통해 검색창을 열고, "share project on github"를 치고 깃허브 로그인을 진행한다. Repository name을 정하고 Share를 클릭하면 본인의 깃허브에 저장소가 새롭게 생성이 된다. 특정 파일이나 폴더들을 커밋에서 제거하기 위해서 .gitignore라는 파일을 사용하는데, 인텔리제이에서 직접적으로 지원이 되지 않으므로 플러그인을 설치해야한다. 다시 command + shift + a를 통해 검색창을 열고, "plugins"을 검색해서 들어간 후 marketplace에 ".ignore"을 검색해서 설치한다. 모든 플러그인들 설치하고 인텔리제이를 재설치해야 적용이 된다. 이후 .gitignore에 파일명을 추가하면 해당 파일은 커밋..
스프링 빈은 기본적으로 싱글톤 스코프로 생성되기 때문에 스프링 컨테이너의 시작과 함께 생성되고, 스프링 컨테이너가 종료될 때까지 유지된다. 싱글톤 스코프 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 스코프 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프이다. session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다. application: 웹의 서블릿 컨텍스와 같은 범위로 유지되는 스코프이다. 자동 등록 @Scope("prototype") @Component public class Bea..