전체 글 138

블로그 누적 방문자 1000명 돌파

3월 23일 오늘, 블로그 누적 방문자가 1000명을 넘어섰다. 작년 12월 15일 코드스테이츠 백엔드 부트캠프를 시작하면서 블로깅을 시작했는데 벌써 3개월이 후다닥 지나간 것도, 지금까지 꾸준히 블로그 작성을 이어온 것도 굉장히 감회가 새롭다. 사실 다른 사람들이 예쁘게 꾸며둔 기술 블로그를 많이 보고는 있지만 자꾸 나중에해야지 하면서 뒤로 미루고 있다. (솔직히 내가 봐도 메인 화면이 너무 성의 없어 보이긴 한다.. 미리 좀 해둘걸ㅠㅜ) 나중에 블로그를 보기 좋게 바꾼다면 아마 블로그 프로필과 이름도 바뀌지 않을까 싶다. 흔히들 생각하는 건빵 속의 별사탕이 되자는 마인드로 별사탕의 블로그라고 시작했지만... 지금와서 보니 나랑 맞지 않게 너무 중후한 느낌이다...ㅋㅋㅋㅋㅋ 글의 대부분이 부트캠프에서 ..

잡담 2023.03.23

Spring Security - 권한 부여 컴포넌트

1.권한 부여 컴포넌트를 이용한 권한 부여 처리 -기본 part 2의 권한 부여 처리 흐름을 보다 자세히 이해하기 위해 Spring Security의 몇 가지 권한 부여 컴포넌트들의 내부 코드를 들여다볼 예정임 [1] AuthorizationFilter ● URL을 통해 사용자의 액세스를 제한하는 권한 부여 Filter ● Spring Security 5.5 버전부터 FilterSecurityInterceptor를 대체하고 있음 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 public class AuthorizationFilter extends OncePerRequestFilter { private final ..

부트캠프 2023.03.22

Spring Security - 인증 컴포넌트

1.인증 컴포넌트를 이용한 인증 처리 -기본 part 2의 인증 처리 흐름을 보다 자세히 이해하기 위해 Spring Security에서 지원하는 인증 컴포넌트들의 내부 코드를 들여다볼 예정임 [1] UsernamePasswordAuthenticationFilter ● 위의 그림에서 사용자의 로그인 request를 제일 먼저 만나는 컴포넌트 ● 일반적으로 로그인 폼에서 제출되는 Username과 Password를 통한 인증을 처리하는 Filter ● 클라이언트로부터 전달받은 Username과 Password를 Spring Security가 인증 프로세스에서 이용할 수 있도록 UsernamePasswordAuthenticationToekn을 생성함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..

부트캠프 2023.03.22

Spring Security - 기본 part 2

3.Spring Security의 인증 처리 흐름 -사용자의 인증 요청이 Spring Security Filter Chain의 특정 Filter에 도달했을 때, Spring Security의 컴포넌트들이 어떤 과정을 거쳐 사용자의 인증 요청을 처리하는지에 대한 흐름은 아래와 같음 -먼저, 위의 그림은 가장 일반적인 인증 방식인 ID/Password(Spring Security에서의 Username/Password)를 이용한 로그인 인증의 처리 흐름임 (1)에서 사용자가 로그인 폼 등을 이용해 Username(로그인 ID)과 Password를 포함한 request를 Spring Security가 적용된 애플리케이션에 전송하면 로그인 요청이 Spring Security의 Filter Chain까지 들어오고,..

부트캠프 2023.03.21

Spring Security - DelegatingPasswordEncoder

1.DelegatingPasswordEncoder -Spring Security에서 지원하는 PasswordEncoder 구현 객체를 생성해주는 컴포넌트 -DelegatingPasswordEncoder를 통해 애플리케이션에서 사용할 PasswordEncoder를 결정하고, 결정된 PasswordEncoder로 사용자가 입력한 패스워드를 단방향으로 암호화 해줌 -장점 ● DelegatingPasswordEncoder를 사용해 다양한 방식의 암호화 알고리즘을 적용할 수 있음 ● 암호화 알고리즘을 특별히 지정하지 않는다면 Spring Security에서 권장하는 최신 암호화 알고리즘을 사용하여 패스워드를 암호화할 수 있도록 지원함 ● 패스워드 검증에 있어서도 레거시 방식의 암호화 알고리즘으로 암호화된 패스워드..

부트캠프 2023.03.21

Spring Security - Filter 와 Filter Chain

1.Filter 와 FilterChain -앞서 기본 part 1에서 언급했듯이, 서블릿 필터(Servlet Filter)는 서블릿 기반 애플리케이션의 엔드포인트에 요청이 도달하기 전에 중간에서 요청을 가로챈 후 어떤 처리를 할 수 있도록 해주는 Java의 컴포넌트임 -위의 그림처럼 클라이언트가 서버 측 애플리케이션으로 요청을 전송하면 제일 먼저 Servlet Filter를 거치고, Filter에서의 처리가 모두 완료되면 DispatcherServlet에서 클라이언트의 요청을 핸들러에 매핑하기 위한 작업을 진행함 -Filter Chain은 여러 개의 Filter가 체인을 형성하고 있는 Filter의 묶음을 의미함 ● Filter 와 Filter Chain의 특성Servlet FilterChain은 요청 ..

부트캠프 2023.03.21

Team Project - 가제_프로젝트

코드스테이츠에서 프로젝트들을 진행하기 전에 앞서, 먼저 4~5명 인원의 백엔드 개발자들이 모여 간단하게 기획부터 배포까지 진행해보기로 하였다. 3월 19일에 첫 회의를 거쳐 팀 프로젝트 노션 페이지와 개발 주제 등을 정했다. 팀 프로젝트 노션 페이지(https://www.notion.so/Team-Project-b0fed311aff542dcad5eb63cc7a99f56) 나는 3월 4주차에는 개발 환경 초기 설정과 환경설정 서류를 작성하는 부분을 맡았다. 이때까지 깃허브를 통해 버전을 관리하고 프로젝트를 포크,푸시 하는데는 익숙했지만 회의결과 GitLab 과 Docker 를 사용해보기로 했고, 팀원 모두가 GitLab 과 Docker 에 대해 익숙하지 않은 상황이었기에 1.'깃랩 생성 및 기본 구조 생성..

Spring Security - 기본 part 1

1.Spring Security -Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization or 권한 부여) 기능을 지원하는 보안 프레임워크로써, Spring MVC 기반 애플리케이션에 보안을 적용하기 위한 사실상의 표준 -Spring Security를 애플리케이션에 적용하여 할 수 있는 일 다양한 유형의 사용자 인증 기능 적용(폼 로그인 인증, 토큰 기반 인증, OAuth 2 기반 인증, LDAP 인증) 애플리케이션 사용자의 역할(Role)에 따른 권한 레벨 적용 애플리케이션에서 제공하는 리소스에 대한 접근 제어 민감한 정보에 대한 데이터 암호화 SSL 적용 일반적으로 알려진 웹 보안 공격 차단 SSO, 클라이언트 인증서 기반 인증, 메서드 보안, 접근 ..

부트캠프 2023.03.16

인증/보안 - 기초

1.HTTPS -HTTPS(Hyper Text Transfer Protocol Secure Socket Layer) : 암호화를 사용하여 웹사이트와 사용자 간의 통신을 보호하는 보안 프로토콜 -HTTPS는 아래의 목적을 가지고 사용함 ● 암호화(encryption) ○ 제 3자가 서버와 클라이언트가 주고받는 정보를 탈취할 수 없도록 하는 것 ○ HTTPS에서는 클라이언트와 서버가 데이터를 주고받을 때는 대칭키를 사용하고, 대칭키를 주고받을 때는 비대칭키 방식을 사용함 ◎ 대칭키 방식 : 양쪽이 공통의 비밀키를 공유하여 데이터를 암호화 및 복호화하는 것(암호화 비밀키 = 복호화 비밀키) ◎ 비대칭키 방식 : 각각 공개키와 개인키를 가지고 상대가 나의 공개키로 암호화한 데이터를 개인키로 복호화하는 것(암호화..

부트캠프 2023.03.15

백엔드 부트캠프 3개월 차 회고 블로그

벌써 3월이고, 벌써벌써 개발공부를 시작한지 3개월이 지났다.(정말 시간이 빨리 지나간다.....) 섹션3에 들어와서 Spring을 배우기 시작했고, 섹션2 때와는 또 다른(정말 많은) 난관들이 나를 맞이했다. Spring MVC 파트가 시작되고 부터는 유어클래스 컨텐츠 내용을 따라가고, 복습하기에도 벅차서 인프런 스프링 강의를 거의 듣지 못했다.ㅠㅠ 그래도 배운 내용을 소화하는게 우선이니 최대한 따라가기 위해 노력하고 있다. 특히 챗gpt의 도움을 정말 많이 받고 있다 ^.^ 벌써 섹션3가 끝나고 섹션4가 시작이다. 보안,인증,DB 등등에 대해서 배우고 나면 이젠 정말 프로젝트가 시작되고 내가 무언가를 만들어내야 할 텐데, 솔직히 아직 당장은 부담감이 크다. 내가 잘 할 수 있을지.. 남들 하는 것 만..

잡담 2023.03.13