전체 글

    1장. 오브젝트 의존관계2

    토비 스프링을 공부하면서 실습했던 내용과 모르는 내용만 기록을 위해서 포스팅한다. 1.5 스프링의 IOC 1.5.1 오브젝트 팩토리를 이용한 스프링 IoC 실습 코드 링크: https://github.com/vvshinevv/toby-spring/tree/feature/1.5.1 스프링에서 빈 팩토리라고 말할 때는 빈을 생성하고 관계를 설정하는 IoC의 기본 기능에 초점을 맞춘 것이고, 애플리케이션 컨텍스르라고 말할 때는 애플리케이션 전반에 걸쳐 모든 구성요소의 제어 작업을 담당하는 IoC 엔진이라는 의미가 좀 더 부각된다. 1.5.2 애플리케이션 컨텍스트의 동작 방식 애플리케이션 컨텍스트는 1) DaoFactory 클래스를 설정정보로 등록해두고 @Bean이 붙은 메소드 이름을 가져와 빈 목록을 만들어둔..

    1장. 오브젝트 의존관계1

    토비 스프링을 공부하면서 실습했던 내용과 모르는 내용만 기록을 위해서 포스팅한다. 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이 스프링 핵심 철학이다. 스프링이 가장 관심을 많이 두는 대상은 오브젝트이다. 스프링이 관심을 갖는 대상인 오브젝트의 설계와 구현, 동작원리에 더 집중하길 바란다. 1.1 초난감 DAO 1.1.1 User 실습 코드 링크: https://github.com/vvshinevv/toby-spring/tree/feature/1.1.1 자바빈은 디폴트 생성자와 프로퍼티 관례에 따라서 만들어진 오브젝트를 가리킨다. - 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하..

    Java Socket Server/Client (TCP 통신)

    HTTP 스터디 과제로 Client로부터 요청 받은 내용을 그대로 출력하는 Echo Server를 만드는 과제를 진행하였다. 인터넷 검색을 하면 자료가 워낙 많아서 쉽게 찾아할 수 있었지만, 역시나 내 것으로 만드려면 포스팅이 제맛이다. HTTP는 OSI에서 Application 계층에서 동작하는 프로토콜이다. 이미 학부 시절 네트워크 수업에서 배웠겠지만 Client와 Server의 네트워크 통신은 OSI 계층 구조를 가지고 있으며 Client 프로세스와 Server 프로세스의 통신이라고 보면 된다. 데이터를 보내는 경우 상위 계층에서 하위 계층으로 데이터는 멀티플렉싱되며, 데이터를 받는 입장에서는 하위 계층에서 상위 계층으로 디멀티플렉싱된다. java.net.* 패키지에서 제공해주는 인터페이스를 통해서..

    CORS 이슈 해결 :: Spring Security

    프로젝트를 진행하면서 CORS 이슈가 발생하여 포스팅을 하면서 정확히 이해하였다. 그러나 스프링 시큐리티를 쓰는 프로젝트에서 Preflight 방식에 이슈가 생겨서 그 내용을 공유하고자 한다. 이전 포스팅의 방식대로 CORS 정책에 맞게 코딩을 하였다. 그러나 Spring Security를 사용하는 서비스에서 Preflight Request 방식으로 요청을 할 때, OPTIONS 메소드 방식으로 요청을 하면 Spring Security에서 권한이 없다고 AccessDeniedExeption을 발생시키는 이슈였다. 이번 포스팅에서 Spring Security에서 Preflight Request 방식을 어떻게 해결하였는지 공유하고자 한다. 문제의 시작 위 코드를 보면, Filter를 상속 받아서 CORS 정..