일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 깃허브
- 프로그래밍
- 개발
- 운영체제
- CS
- 스프링
- 신입
- 스터디
- 깃
- 컴퓨터공학
- 정보처리기사
- 이펙티브 자바
- 자바
- 신입사원
- java
- OS
- 컴퓨터과학
- 공채
- 메모리
- package-private
- Effective Java
- 우리카드
- 디지털
- Public
- 세마포어
- 뮤텍스
- IT
- github
- 알고리즘
- spring
- Today
- Total
목록전체 글 (116)
주니어 개발자 성장기
점층적 생성자 패턴 정적 팩토리, 생성자 모두 선택적 매개 변수가 많을 경우, 이를 핸들링 하기위해서 프로그래머들은 전통적으로 점층적 생성자 패턴(telescoping constructor pattern)을 사용해왔다. public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { this.servingSize = servingSize; this.servings = servings; this.calories = calories; this.fat = fat; this.sodium = sodium; this.carbohydrate = carbohydrate; } public Nu..
개요 클라이언트 코드가 어떤 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. 하지만 이 방식은 단점이 존재하기 때문에 대안으로 정적 팩터리 메서드를 생각해 볼 수 있다. 정적 팩터리 메서드? 정적 팩터리 메서드는 간단하게 생성자와 같이 클래스의 인스턴스를 반환하는 역할을 한다. 영어로는 static factory methods public class CoffeeBean { // 원두 원산지 private String region; // 원두 품종 private String variety; // 원두 로스팅 시각 private LocalDateTime roastedAt; private CoffeeBean(String region, String variety, LocalDateTime ro..
개요 이펙티브 자바 3판과 백기선의 이펙티브 자바 완벽 공략 강의(인프런)로 공부한 내용을 정리하는 스터디 방식 일주일에 1번씩 화상 미팅으로 발표를 하며 발표자는 모임 당일 사다리타기로 정해진다. 매주 3개의 아이템을 정리해서 강의 수강내역을 노션 페이지에 인증하고 요약글을 블로그에 업로드해야 한다. 일정 6.26(월)부터 약 한달간 진행한다. 기대하는 점 자바 코딩의 Best Practice를 배운다. 자바를 효율적, 안정적으로 사용할 수 있는 법을 배운다. 왜 해당 방식을 사용해야 하는 지 파악함으로써 자바 동작의 원리를 배운다.
Advisior(어드바이저)란? 프록시 내부에서 실제 대상을 호출하기 전에 호출되는 것으로 여기에 공통적으로 적용할 부가 기능을 구현할 수 있다. ex) 시간 재기, 로깅 등 어드바이저는 하나의 Pointcut과 하나의 Advice로 구성된다. Advice 부가기능을 책임지고 있는 인터페이스로서 MethodInterceptor를 구현하여 Advice를 만들 수 있다. invoke메서드에 부가 로직을 구현하면 된다. Pointcut 포인트 컷은 실제 대상 클래스가 호출하는 메서드가 부가기능이 적용되는 지 체크하는 것으로 NameMatchMethodPointcut, AspectJExpressionPointcut 등의 것들을 이용할 수 있다. 주의! 하나의 프록시에는 여러개의 어드바이저가 들어갈 수 있다. 한..
Overview 이번 포스팅에서는AuthenticationManager 의 구현체인 ProviderManager의 동작과 하위 계층에서 어떤 일이 일어나는 지 확인해보려고 한다. ProviderManager public class ProviderManager implements AuthenticationManager, MessageSourceAware, InitializingBean { ... private List providers = Collections.emptyList(); ... } ProviderManager는 AuthenticationProvider를 List에 담은 필드로 가지고 있다. 그러면 인증은 어떻게 이루어 질까? 바로 Override한 authenticate를 통해 이루어진다. 자..
Overview 이번에는 Spring Security에서 일반 로그인(Form Login)을 구현하고, 로그인 요청이 필터를 거치며 어떻게 인증이 되는 지 그 과정을 정리하려고 한다. Why Form Login? Spring Security 로그인 과정 분석 (Feat. 템플릿 메서드 패턴) 유저 정보는 어떻게 불러오는가? Why Form Login? Spring Security 에서는 로그인 방식으로 3가지를 지원한다. Reading the Username & Password :: Spring Security 폼 로그인 일반적으로 쓰는 로그인의 형태로 대체로 POST 메서드와 form-data 형식으로 아이디와 패스워드를 전송한다. 도청의 위험성이 있기 때문에 반드시 SSL/TLS 계층과 함께 사용한다..