전체 글 190

'22.06.16 Today I Learned

- 싱글톤 패턴이란? - 스프링은 싱글톤 컨테이너 - 자바에서 == 와 equals 의 차이점 1. 싱글톤 패턴이란? 클래스의 인스턴스가 딱 한 개만 생성되게끔 하고 해당 인스턴스를 호출하는 식으로 설계하는 디자인패턴의 일종이다. 만약 인스턴스를 요청이 올 때마다 생성해서 호출한다면 메모리낭비가 생기는 등 바람직하지 못 하다. 이것을 방지하기 위해 싱글톤 패턴이라는 것을 도입한다. 싱글톤 패턴 구현 어떻게? 인스턴스를 하나 미리 만들어 놓고 생성자를 private으로 함으로써 외부에서 인스턴스를 생성하지 못 하도록 하면 된다. package hello.core.singleton; public class SingletonService { private static final SingletonService ..

'22.06.15 Today I Learned

- 자바의 정석 예외처리 - 스프링 심화 : 단위 테스트 1. 자바의 정석 예외처리 자바의 정석 예외처리 부분을 읽었다. 다 읽은 것은 아니고 앞 부분 조금만 읽었다. 예외처리는 프로그램이 죽지 않게 하기 위해 중요하게 다뤄야 하는 부분이다. 개념을 확실히 이해하고 실제 프로젝트할 때 써 보는 것이 중요할 것 같다. 예외의 정의 에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 ⇨ 프로그램이 완전히 죽어버림 Ex) 메모리 부족, 스택오버플로우 예외: 프로그램 코드에 의해서 수습될 수 있는 상대적으로 덜 심각한 오류 ⇨ ArithmeticException,NullPointerException 정의에서도 알 수 있듯이 예외는 코드를 잘 짜면 예외가 발생했을 때 프로그램이 비정상적으로 종료되는 것을 ..

'22.06.14 Today I Learned

- 자바 문법 : 인터페이스 - 스프링 : 스프링 컨테이너 1. 자바 문법 : 인터페이스 > 인터페이스와 다형성 인터페이스 부분을 자바의 정석을 통해 다시 공부했다. 듣고 있는 스프링 강의에서 인터페이스의 중요성을 체감해서 인터페이스 부분을 다시 공부했는데 새롭게 알게 된 것들이 많아서 좋았다. 그 중에서도 가장 인상 깊었던 것은 다형성과 연관지어서 인터페이스의 사용이유를 알게된 것이다. 자바의 정석에서 스타크래프트 유닛을 예시로 인터페이스 부분을 설명해주는 내용이 있는데 이 부분이 이해가 잘 되었다. Unit -> GroundUnit / AirUnit -> GroundUnit: Marine, SCV, Tank / AirUnit : Dropship 이런 식으로 상속 구조를 가지고 있는 상태이고 SCV가 ..

'22.06.13 Today I Learned

- 카카오 소셜 로그인 - 의존관계 주입 공부 1. 카카오 소셜 로그인 스프링 심화 강의에서 카카오 소셜 로그인을 하는 법에 대해서 배웠다. 이해가 잘 가지 않았다. 코드의 양이 많은데 한 번에 코드 스니펫 복붙으로 하다보니 내용을 따라가기가 어렵고 이해하는게 힘들었다. 전반적으로 스프링 시큐리티 부분이 어려운 것 같다. 다시 한 번 쭈욱 복습을 하고 다음 챕터로 넘어가는 것이 나을 것 같다. 그래도 잘 배워두면 프로젝트할 때 적용할 거리가 하나 늘어난 것 같아서 좋은 것 같다. 2. 의존관계 주입 공부 스프링 기초 강의에서 이해가 잘 되지 않았던 DI(의존관계 주입)에 대해서 인프런 강의를 보며 다시 공부했다. 이번엔 얼추 이해가 된 것 같다. ○ 의존관계 주입에서 가장 핵심 ⇨ 객체지향의 다형성 개념..

'22.06.06 ~ '22.06.10 (내일배움캠프 8주차) Weekly I Learned

How to record Weekly I Learned ? => 4F What is 4F? Fact : 이번주 있었던 일, 내가 한 일 Feeling : 나의 감정적인 반응, 느낌 Finding : 그 상황으로부터 내가 배운 것, 얻은 것 Future : 배운 것을 미래에 어떻게 적용할 것인가 1. Fact - 자바 + 스프링을 더 공부했다. 스프링에 조금은 익숙해진 거 같기도 하다. - 초심을 찾으려고 시작할 때의 기분을 떠올려봤다. 2. Feeling & Finding > 자바 + 스프링 공부는 매일매일 꾸준히... 매일매일 스프링 강의를 들으며 공부를 하고 있다. 비록 심화 단계에 접어들고 조금 더 어려워진 건 사실이지만 한 번에 이해가 다 될 거란 기대를 하지 않은 채로 여러 번 보겠단 마인드로 ..

'22.06.10 Today I Learned

- Spring 기초 복습 - 자바의 정석 : 다형성 부분 읽기 (~ing) 1. Spring 기초 복습 타임어택 테스트도 있고 스프링 기초 부분 기억도 조금 희미해져 가는 거 같아서 오늘은 스프링 기초 부분을 복습했다. 3계층 부분부터 각 코드가 쓰이는 논리적인 순서를 위주로 공부했다. 덕분에 CRUD하는 부분은 조금 더 익숙해진 거 같다. 아직 복잡한 구현은 잘 못 하지만 이런 기본적인 것부터 숙달시켜놓고 심화된 구현에 도전해보는 것도 괜찮을 것 같다. 2. 자바의 정석 : 다형성 부분 읽기 (~ing) 자바의 정석 객체지향 파트를 공부 중인데 다형성 부분을 읽기 시작했다. 다형성은 객체지향에서도 굉장히 중요한 파트라고 하던대 제공해준 강의에선 다루지 않아서 따로 공부를 하려고 읽기 시작했다. 그런데..

'22.06.09 Today I Learned

- Spring 심화강의 수강 - Spring 기초 DI / IoC 컨테이너 부분 복습 1. Spring 심화강의 수강 스프링 심화강의를 계속해서 수강하고 있다. 계속해서 스프링 시큐리티를 활용해서 회원가입, 로그인, 로그아웃 부분을 배우고 있다. 패스워드 암호화 하는 법 파이썬에서 JWT를 이용해서 로그인을 할 때도 패스워드를 암호화하는 법에 대해서 배웠는데 그 때도 해쉬함수를 사용했던 거 같은데 오늘 배운 것에서도 해쉬 함수를 사용했다. 스프링 시큐리티에서 해쉬 함수를 이용하는 법은 의외로 간단했다. 1. 스프링 시큐리티에서 제공하는 BCryptPasswordEncoder 클래스 함수 사용 @Bean public BCryptPasswordEncoder encodePassword() { return n..

'22.06.08 Today I Learned

- 인증과 인가의 차이 - 쿠키와 세션이란? - Spring Security 1. 인증과 인가의 차이 인증과 인가는 이름이 비슷해서 얼핏 보면 서로 같은건가 하는 생각을 할 수도 있지만 이름이 다른데는 다 이유가 있다. 인증은 Authentication, 인가는 Authorization로 영어단어도 다르다! 인증: 사용자의 신원을 확인하는 행위 인가: 사용자의 권한을 확인하는 행위 비유해서 이해해보자면 인증은 건물에 출입할 수 있는 신원확인이고, 인가는 건물을 출입한 이후에 어느정도의 수준까지 시설이용이 가능한지 권한을 부여하는 것에 관한 것이라고 할 수 있겠다. 웹에서 인증은 주로 로그인을 통해서 본인인지를 확인하는 과정을 거치면서 이뤄지고 인가는 그 회원이 어느 정도의 권한을 가지느냐에서 이뤄지는 것..

'22.06.07 Today I Learned

- Spring 심화 강의 수강 1. Spring 심화 강의 수강 스프링 심화 강의를 듣는 중이다. 스프링 기초가 일단 서비스를 만들어보면서 스프링에 익숙해지는 과정이었다면 심화 강의는 기초 강의에서 썼던 코드를 왜 그렇게 썼는지 원리에 대해서 배울 수 있는 강의인 것 같다. 오늘 배운 것 중에선 DI 와 IoC가 가장 기억에 남는다. 스프링의 핵심원리를 꼽으라면 DI와 IoC를 항상 많이 뽑는데 그것에 대해서 배울 수 있어서 좋았다. 다만 아직 개념이 완전하게 이해가 되지는 않는 것 같다. 구글링을 좀 더 하면서 찾아봐야 할 것 같다. DI와 IoC는 용어는 다른데 같은 개념을 가리키는 말인 것 같다. DI란 어떤 객체에서 다른 객체가 필요할 때 객체를 직접 생성하지 않고 이미 생성된 객체를 끌어와서 ..

'22.05.30 ~ '22.06.03 (내일배움캠프 7주차) Weekly I Learned

How to record Weekly I Learned ? => 4F What is 4F? Fact : 이번주 있었던 일, 내가 한 일 Feeling : 나의 감정적인 반응, 느낌 Finding : 그 상황으로부터 내가 배운 것, 얻은 것 Future : 배운 것을 미래에 어떻게 적용할 것인가 1. Fact - Spring 기초 강의 수강완료 - 서버리스 자동배포 실시간 강의 - 구현 능력이 너무 부족하다는 것을 느낌 - Spring 공부와 자바 공부 사이의 균형을 맞추기가 어려웠음 2. Feeling & Finding > Spring 기초 강의 수강 완료 이번주에 드디어 스프링 기초 강의를 다 들었다. 중간중간에 복습을 하면서 들어서 조금 더 길어진 감이 있긴 하지만 그래도 무사히 잘 끝낸 것 같다. ..