소개
다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.
공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.
다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.
강의
전체4로드맵
전체1수강평
- 상세한 내용이라 이해하는데 많은 도움이 됩니다
박수민
2024.07.17
0
- 너무좋아요.. 나만듣고싶다
dncjf64
2024.07.16
0
게시글
질문&답변
2024.07.26
SecurityContextRepository / SecurityContextHolderFilter - 2 강의 질문 있습니다
네 request 를 확인할 필요가 없는것이 request 는 매 요청마다 바뀌기 때문에 request 에 securityContext 가 존재할 수 없습니다. 그래서 인증이 없는 상태에서는 새롭게 securityContext 를 생성해서 스레드 로컬에 저장하는 것입니다. 그래서 세션에 securityContext 가 없다면 인증을 받지 않은 상태임을 의미하는 것이고 이는 곧 새로운 securityContext 을 만들어 익명 사용자의 인증상태를 나타내도록 AnonymousAuthenticationToken 을 생성하여 처리하고 있다고 보시면 됩니다.
- 0
- 2
- 62
질문&답변
2024.07.26
안녕하세요!
음.. 가능은 합니다만 좀 제약이 있습니다. 저의 자료에 있는 내용을 그대로 올리는 거나 비슷하게 올리게 되면 강의 내용 자체 유출이 될 수 있으므로 조심해 주시기 바랍니다. 현재 구글에서 저의 강의를 올린 블로그를 보는데 강의 내용을 그대로 한 부분이 발견이 되어 문제의 소지가 있어 좀 고민하고 있습니다. 개인적으로 공부한 부분을 요약하여 정리하신다는 기준으로 올리시기 바랍니다.
- 0
- 2
- 100
질문&답변
2024.06.27
ReentrantLock.lockInterruptibly() 질문
네 위 코드에서 IllegalMonitorStateException 가 발생하는 원인은 unlock 메서드가 락을 획득하지 않은 스레드에 의해 호출되기 때문인데요 ReentrantLock 객체의 unlock 메서드는 락을 획득한 스레드만이 호출할 수 있습니다. 위 코드에서는 thread1 이 인터럽트될 때 락을 획득하지 않은 상태에서 thread1 이 finally 에서 unlock 을 호출하게 되어 예외가 발생하고 있습니다. 그래서 다음과 같이 할 수 있습니다. Thread thread1 = new Thread(() -> { try { lock.lockInterruptibly(); // 락을 시도하며, 인터럽트가 들어오면 중단 System.out.println("스레드 1이 락을 획득했습니다"); } catch (InterruptedException e) { System.out.println("스레드 1이 인터럽트를 받았습니다"); } finally { if (((ReentrantLock) lock).isHeldByCurrentThread()) { lock.unlock(); System.out.println("스레드 1이 락을 해제했습니다"); } } }); 즉 finally 에서 현재 스레드가 락을 획득한 경우에만 unlock 을 호출하도록 하는 것입니다.
- 0
- 1
- 93
질문&답변
2024.06.27
AuthenticationManger - HttpSecurity 사용
강의 자료와 소스코드가 동기화 되어 있지 않을 수 있습니다. 강의에서 제공하는 소스코드를 중심으로 이해해 나가시면 됩니다. 직접 생성방식 formLogin 은 기본적으로 사용하는 것이고 추가적으로 CustomAuthenticationFilter 를 사용하고자 할 때를 설명하고 있는 것입니다. 여기서 중요한 것은 formLogin 에서 사용하고 있는 AuthenticationManager 가 아닌 직접 AuthenticationManager 를 생성해서 CustomAuthenticationFilter 로 부터 인증 지시를 받는 예를 든 것입니다. "우리가 생성한 필터?(CustomAuthenticationFilter이게 맞는지는 모르겠지만)를 통해 인증을 진행할 때 ,직접 생성한 AuthenticationManger를 사용해서 인증을 진행하도록 한다고 이해했습니다. 이게 맞나요?" 네 그렇게 이해하시면 됩니다. HttpSecurity 생성방식 네 기본적으로 AnonymousAuthenticationProvider 와 DaoAuthenctionProvider 를 가지고 있습니다. AnonymousAuthenticationProvider 는 기본 ProviderManager 가 가지고 있고 DaoAuthenctionProvider 는 기본 ProviderManager 의 parent 속성에 저장된 또 다른 ProviderManager 가 가지고 있습니다.
- 0
- 2
- 94
질문&답변
2024.06.27
JSP를 사용하는 경우 정적 자원 보호를 어떻게 설정해야 하나요?
보통 클라이언트에서 /WEB-INF/* 경로를 바로 접근하지 못하기 때문에 WEB-INF 설정은 필요하지 않을 것 같습니다. requestMatchers 는 클라이언트의 요청에 대한 심사를 하기 때문에 서버 내부적으로 포워딩하는 WEB-INF 설정은 별도로 필요하지 않습니다. 그리고 jsp 는 컨트롤러에서 요청을 받아 뷰로 반환하는 시점에 일어나기 때문에 스프링 시큐리티의 필터체인에 걸리지 않습니다
- 0
- 2
- 88