프로그래밍 공부

    스프링 스터디 기본편 -7

    스프링 핵심 원리 이해 7 - 프로토타입 스코프 빈 스코프란? 스프링에서 지원하는 스코프 싱글톤: 기본! 지금까지 진행한 스코프. 스프링 컨테이너의 시작~종료를 모두 아우르는 가장 넓은 범위. 프로토타입: 프로토타입 빈의 생성과 의존관계 주입까지만 관여. 웹 관련 스코프 - request: 웹 요청이 들어오고 나갈때까지 - session: 웹 세션이 생성되고 종료될 때까지 - application: 웹의 서블릿 컨텍스와 같은 범위로 프로토타입 스코프 스프링 컨테이너는 프로토타입 빈을 생성하고, 의존관계 주입, 초기화까지만 처리! → 프로토타입 빈을 관리할 책임은 클라이언트에게 있음, 종료 메서드 호출 X → 종료 메서드 호출도 클라이언트가 직접! 프로토타입 스코프 with 싱글톤 빈 프로토타입 빈을 그냥..

    스프링 스터디 기본편 -6

    스프링 핵심 원리 이해6 - 의존관계 주입 빈 생명주기 콜백 스프링 빈의 이벤트 라이프사이클 스프링 컨테이너 생성 → 스프링 빈 생성 의존관계 주입 → 초기화 콜백 사용 → 소멸전 콜백 → 스프링 종료 * 초기화 콜백 : 빈이 생성되고, 의존관계 주입 완료후 호출 Q. 왜 객체의 생성과 초기화가 분리되나요? A. 생성자는 객체를 생성하는 책임 / 초기화는 값들을 활용해서 외부 커넥션 등을 연결하는 책임 두가지를 명확히 나눠서 진행하는 것이 유지보수의 관점에서 좋습니다. (간단하다면 한번에 해도 OK) 스프링의 빈 생명주기 지원 방식 인터페이스 InitializingBean, DisposableBean implements를 통해서 넣는 것. 다만, 이 인터페이스는 스프링 초창기에 나온 방식이라 최근엔 자주..

    스프링 스터디 기본편 -5

    스프링 핵심 원리 이해5 - 의존관계 주입 다양한 의존관계 주입방법 생성자 주입: 생성자를 통해 의존관계를 주입받는 방법. (앞서서 배웠던 내용이 이것에 해당됨) 생성자가 하나만 있다면 @Autowired를 생략해도 자동 주입 된다. 물론 스프링 빈에만 해당한다 final 키워드를 통해서 변수를 따로 구성할수도 있음. 생성자에게 혹시라도 값이 설정되지 않는 오류를 컴파일 시점에서 막아줌. → 불변, 필수의 의존관계에 사용 (개발하면 거의 다 불변임) 수정자 주입(setter 주입): setter라 불리는 필드의 값을 변경하는 수정자 메서드를 통해서 의존관계를 주입하는 방법 빈을 부르면서 의존관계주입도 동시에 일어남. → 선택, 변경가능성이 있는 의존관계에 사용 필드 주입: 필드에다가 값을 바로 넣어버리는..

    스프링 스터디 기본편 - 4

    * 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다 스프링 핵심 원리 이해4 - 컴포넌트 스캔 지금까지 빈을 등록한 방법은 @Bean이나 XML의 이었고, 이번에는 @ComponentScan을 통한 방법을 알아본다. @ComponentScan @ComponentScan → @Compontent 가 붙은 클래스를 스캔해서 스프링 빈으로 등록. @Autowired → 의존관계 자동 주입 탐색 위치와 기본 스캔 대상 @ComponentScan( -- ) 괄호 안에 적어서 지정 가능한 옵션들 basePackages → 탐색할 패키지의 시작 위치 지정. 이 패키지를 포함해서 하위 패키지를 모두 탐색한다. 권장하는 방법 → 프로젝트 최상단에 AppConfig같은 메인 정보를 두고, 그냥 추..

    스프링 스터디 기본편 -4

    * 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다 싱글톤 컨테이너 Spring 관련 Singleton 싱글톤 패턴 클래스의 인스턴스가 한개만 생성되는 것이 보장되는 디자인 패턴. 싱글톤 컨테이너 스프링 컨테이너는 싱글턴 패턴을 적용하지 않아도 객체 인스턴스 자체를 싱글톤으로 구성한다. →요청이 올때마다 객체를 생성하는 것이 아니라, 이미 만들어진 객체를 공유해서 효율적으로 재사용하는 것. 주의점 위에서 이야기한 대로, 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지하게 설계해서는 안된다. 실제로 이러한 부분들에 있어서 실무에서 많은 문제가 일어난다고 한다. 상속관계가 연결되게 된다면 정말 복잡하기 때문에... 공유필드는 조심하고, 스프링 빈은 항상 무상태로 설계하는 ..

    스프링 스터디 기본편 -3

    * 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다 스프링 컨테이너와 스프링 빈 사실 예전에 스프링을 혼자 한번 공부하려다가, xml을 이해 못해서 포기했었는데 (정말 충격이었고... 무슨소린지 모르겠어서 포기했었다. 생각해보니 그당시 들었던 인강도 좀... 잘못골랐던거같다. 심지어 ide의 도움도 제대로 못받아서... 생략) 옛날에는 xml기반으로 만들었고, 현재는 스프링 컨테이너를 통해 만든다고 한다. Spring 관련 스프링 빈 조회에 대해서 길게 실습을 했는데, 실제로 현업에서는 자주 쓰이지 않는다고. 그렇지만 내부적으로 어떻게 돌아가는지는 배워두는게 좋을 것 같다. 우리가 ApplicationContext를 사용할 때, BeanFactory등의 다양한 인터페이스를 ext..

    정보처리기사 필기 합격!

    정보처리기사 1회 필기 합격한지는 좀 되었는데, 후기를 적는다는게 늦어져서 지금이나마 적어봅니다 비전공자/ 문과생분들도 충분히 쉽게 통과할 시험이라고 생각해서, 혹시 보시게 된다면 용기를 가지시길 바랍니다! 공부는 어떻게? 책: 수제비 정보처리기사 필기 책 기간: 2주정도 (제대로 빡세게 공부한건 1주가량인것 같다) 사실 복수전공을 진행하고 있는 입장에서 기존에 데이터베이스 수업과 소프트웨어 공학 수업을 들은 것이 정말 큰 도움이 된 것 같다. (전공 내용과 완전히 동일한 부분이 많았다.) 사실 이것덕분에 사실상 제대로 공부한게 한주였음에도 성적이 잘 나왔던듯... 어느정도 안정권인 성적을 받아서 통과하고 싶다면 2주정도는 공부하는 것을 추천한다. 기본적으로 개념은 휙 넘기는걸로 1회독을 했고, 정리하면..

    스프링 스터디 기본편 -2

    * 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다 스프링 핵심 원리 이해2 - 객체지향 원리 적용 spring 관련 의존관계의 중요성에 대해서 다시 생각해보게 된다. 객제지향설계를 잘 만들기 위해서는 (SOLID라고 하는 5개의 원칙이 있는 것은 알고 있었으나, 실제 스프링 개발에서 사용하는 것은 처음이었어서 좀 더 주의 깊게 보았던 것 같다. 참고로 적어보는 SOLID의 5가지 SRP 단일책임원칙 : 한 클래스는 하나의 책임만 OCP 개방 - 폐쇄 원칙 : 확장에는 열려있고, 변경에는 닫혀있어야 한다. LSP 리스코프 치환 원칙 : 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. ISP 인터페이스 분리 원칙: 관련된 인터페이스만 사용..

    스프링 스터디 기본편 - 1

    * 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다 요즘 티스토리가 뜸한지 오래됐는데... 나름 공부는 계속하고 있었다 정리하는 것도 좀 습관이 되어야 할 필요가 있는 것 같은데... 시험기간 끝나고 교생 시작할 때쯤이면 한번 정리해야겠다... 맨날 정리한다고 해놓고 안 하는 것도 문제다.... 저번에 무료로 나온 강의를 듣고 (0주차) 이제 기본편을 듣고 있는데, 어느 정도 스프링에 대한 기본을 알아가는 기분인 것 같기는 하다. 스프링 핵심 원리 이해1 - 예제 만들기 Spring 관련 사실 스프링을 공부하며 가장 신기하다? 재미있다고 느낀 부분은 Test 관련 부분인 것 같다. 평소에 '테스트 코드'를 짜는게 중요하다!라는 말을 듣긴 했어도 그것을 실제로 구현해볼 기회는 별로..

    React Study!

    동방 프로젝트 진행하며, react를 보다 정확하게 배워보고싶어져서, 동방 프로젝트 frontend를 같이 맡았던 언니와, 멋사 사람들 중 관심 있는 사람들과 함께 리엑트 스터디를 진행하게 되었다! (사실 진행한지는 꽤 됐다,,ㅎㅎㅎ..) 책은 리액트 교과서를 가지고 공부하고 있고, 1달안에 같이 책 한권을 마스터 하는것을 목표로 같이 화, 목, 일마다 7시에 온라인 스터디를 하고있다. 지금이 4회차이고 곧 5회차를 할거같은데, 스터디를 진행하며 느꼈던 것은, 책으로 한번 다시 확인하고, 공부하는 과정이 조금 번거로울지라도 필요한 과정같다는 것이었다. 돌아가며 두챕터씩을 강의하는 방식으로 스터디가 진행되는데, 나는 교과서의 내용과 함께 해당 챕터와 관련된 공식문서를 함께 읽은 것이 많은 도움이 된 것 같..