전체 글
[초보 웹 개발자를 위한 스프링5 프로그래밍 입문] 06.빈 라이프사이클과 범위
## 빈 라이프사이클 - 객체 생성 -> 의존 설정 -> 초기화 -> 소멸 ### 빈 객체의 초기화와 소멸 - 빈 객체를 초기화하기 위해 스프링은 빈 객체의 지정된 메서드를 호출한다. 스프링 컨테이너를 종료하면 스프링 컨테이너는 빈 객체의 소멸을 처리하며 지정된 메서드를 호출한다. - org.springframework.beans.factory.InitializingBean - org.springframework.beans.factory.DisposableBean 초기화와 소멸 과정이 필요하면 위 두 인터페이스를 상속하여 메서드를 구현하면 된다. 초기화와 소멸이 필요한 예에는 데이터베이스 커넥션 풀, 채팅 클라이언트 등이 있다. - 외부에서 제공받은 클래스를 빈 객체로 등록하는 등 인터페이스를 상속할 수..
[초보 웹 개발자를 위한 스프링5 프로그래밍 입문] 05. 컴포넌트 스캔
## 컴포넌트 스캔이란? 스프링이 직접 클래스를 검색해서 빈을 등록해주는 기능 ### 사용방법 1. @Component 애노테이션을 빈으로 등록하고 싶은 클래스에 붙이기 2. @ComponentScan(basePackages={"somePackage"} 애노테이션을 설정클래스에 붙이기 - @ComponentScan(excludeFilters = @Filter(type= ... ))등을 통해 빈으로 등록하지 않을 패턴을 지정할 수 있다. - @Controller, @Service, @Repository, @Aspect, @Configuration은 @Component를 붙이지 않아도 빈으로 지정된다. - 자동 등록 빈 vs 수동 등록 빈 충돌할 경우 수동 빈이 등록된다.
[초보 웹 개발자를 위한 스프링5 프로그래밍 입문] 04. 의존 자동 주입
의존성 자동 주입 방법 @Autowired @Autowired는 필드와 메서드에 붙일 수 있다. 스프링이 해당 메서드를 호출하여 파라미터 타입에 해당하는 빈 객체를 인자로 주입한다. 필수가 아닌 주입대상에는 @Autowired(required = false)로 지정해주면 된다. 스프링 5부터는 Optional을 사용해도 된다. @Autowired pulblic void setSomething(Optional some) { ... } 또한 @Nullable 애노테이션으로 필수 여부를 지정할 수 있다. 셋의 차이점은 다음과 같다. // 차이점 @Autowired(required = false) -> 매칭되는 빈이 없으면 메서드 호출되지 않는다. 미리 할당된 값이 있으면 값을 바꾸지 않는다. @Nullable..
[스프링 입문을 위한 자바 객체지향의 원리와 이해] 1. 사람을 사랑한 기술
"스프링 입문을 위한 자바 객체지향의 원리와 이해" 책을 통해 자바의 특성과 스프링 기초에 대해 다지려 한다. 01. 사람을 사랑한 기술 이 챕터에서는 자바가 어떻게 탄생했는지 역사를 간략히 소개한다. 01010011.... 이진법으로만 프로그램을 작성하던 시절부터 어셈블리어, C언어, C++, C#/Java가 어떻게 인간을 이롭게 했는지 알아본다. 기술의 변천사 이진법 -> 어셈블리어 : 사람이 이해할 수 있는 "니모닉"을 추가함 어셈블리어 -> C언어 : One Source Multi Object Use Anywhere. 단 하나의 소스파일만 가짐 C언어 -> C++ : 객체 지향 개념 추가 C++ -> Java/C# : Write Once Use Anywhere. 가상 머신 추가 (컴파일러를 기종별..
[초보개발자를 위한 스프링5 프로그래밍 입문] 스프링 시작하기
"초보개발자를 위한 스프링5 프로그래밍 입문" 책으로 스프링 스터디를 진행하기로 했다. 이전에 이미 수강한 인프런 김영한님 강의와 상당수 겹치는 부분이 있어, 주된 목차를 따라가며 정리하기보단 가볍게 훑으며 몰랐던 것만 정리해두려고 한다. Chapter 1. 들어가며 메이븐/그래들, jdk, 이클립스 설치 및 환경변수 설정 메이븐/그래들은 빌드 도구이다. Chapter 2. 스프링 시작하기 스프링 부트를 사용하는 대신 프로젝트를 직접 설정한다. 다음과 같은 폴더 구조는 메이븐/그래들의 형식이다. (여태 스프링 사용하면서 이 파일구조가 빌드 도구때문인줄은 몰랐다.) - 그룹ID - 아티팩트ID - src - main - java - resources - webapp - WEB-INF 폴더들을 수동으로 만들..
OSIV (Open Session In View) 란?
면접 때 질문 받은 키워드인데 처음 들어보는 개념이어서 공부하고 정리해보았다. OSIV - 세션의 시작은 서블릿이 시작되는 시점 부터 (세션은 영속성 컨텍스트를 포함) - 트랜잭션의 시작은 서비스 레이어부터, JDBC 커넥션도 이 시점부터. - 트랜잭션의 종료는 서비스 계층에서 종료, JDBC 커넥션도 이 시점 부터 종료. - 세션은 컨트롤러 영역까지 끌고 가기 때문에 영속성이 보장되어 select가 가능해지고 lazy-loading이 가능해진다. OSIV는 이렇게 presentation layer까지 세션을 유지하는 것을 뜻한다. View에서 프록시 객체에 대한 정보가 필요할 때 JDBC 커넥션을 열어서 받아올 수 있다. 다만 트랜잭션은 이미 종료된 상태이기 때문에 정보 변경은 불가능하다. 설정방법 y..
청년고민해결단 - 이동욱님과의 멘토링 후기
서론 취업을 준비하고 있는데 '청년고민해결단'이라는 좋은 프로그램을 알게 되어 신청하였다. 취업 및 창업을 준비하고 있는 청년들에게 멘토링과 같은 도움을 주는 프로그램이다. 유튜브 '개발바닥'과 블로그 '기억보다 기록을'을 운영 중이신 현 인프랩 CTO 이동욱 님이 멘토로 계셔서 바로 신청했다. 블로그와 유튜브 둘 다 자주 보았었는데 특히 블로그에서는 기술적인 도움도 많이 받아서 연예인 보는 팬 된 기분이었다. 동욱 님의 블로그 ↓ https://jojoldu.tistory.com 기억보단 기록을 Java, TypeScript, ORM, RDBMS, AWS 를 주로 다루고 공유합니다. jojoldu.tistory.com 멘토링은 먼저 동욱 님이 공통적인 질문을 취합하여 답변해 주셨고, 그다음 나를 비롯한..
ec2 인스턴스 ssh로 접근하기
테섭에 고쳐야 할 게 생겼다. 처음으로 ec2에 접근해보는데 과정을 기록해두려한다. 현재 실행중인 인스턴스는 이거다 인스턴스를 선택하고 연결한다. ssh로 연결할거기때문에 ssh 클라이언트 탭을 누른다. 만들어둔 .pem 파일의 속성을 열어 읽기전용으로 변경해준다. 나는 윈도우니까 git bash를 사용해준다. ssh -i "이름.pem" ubuntu@주소이름.amazonaws.com 안내대로 이 명령어를 입력한다. 접속 끝!