개인 프로젝트, 팀 프로젝트에 이어 사내 프로젝트까지 스프링 시큐리티를 담당하며 시큐리티에 대한 이해도가 많이 필요하게 되었다. 특히 시큐리티는 필터 체인을 통해 여러 가지 인증/인가와 관련된 필터를 타게 되는데 해당 필터들의 대한 이해가 동반되지 않으면 스프링 시큐리티를 사용하는 데 있어 많은 어려움을 겪게 된다. 우선 스프링 시큐리티를 활성화하게 되면 아래와 같은 기본적으로 정의된 필터를 타면서 인증/인가 절차를 진행하게 된다. 그 중에 UsernamePasswordAuthenticationFilter라는 것이 6번째 필터로 존재하게 되는데 해당 필터의 존재의 의미와 역할에 대해 알아보려고 한다. 왜 이렇게 익숙한 이름이지? 처음에 UsernamePasswordAuthenticationFil..
제대로 책을 읽자고 마음먹은 날 동작 도서관에서 처음으로 빌린 책이다. 책을 골랐던 기준은 유튜브였다. (아마 기억상 처음 읽기 좋은 책~ 이렇게 검색해서 빌렸던 것으로 기억한다.) 아침, 저녁 지하철 오가면서 짬짬이 하루에 20p ~ 30p씩 독서를 시작했었다. 완독 후 느낀 점을 한 줄로 요약하자면 '너무 무모한 습관들 가지려고 하지 말자. 나에게 맞는 습관을 차근차근 바닥부터 시작해 보자' 좋은 습관을 가진 사람을 항상 우러러보는 경향이 있다. '저 사람은 저렇게 좋은 습관을 매일 유지하는구나, 나도 저렇게 되고 싶다' 이런 생각을 많이 가졌었다. 이번에 독서를 시작한 이유도 위와 같은 이유로 시작했다. 그리고 독서의 습관을 기르기 위해 독서 스터디까지 창설했다. 내가 우러러보는 좋은..
해당 글은 저의 개념을 바탕으로 자료구조를 구현한 뒤 틀린 부분을 파악해 나가는 과정을 가지고 있습니다.초반에 틀린 설명으로 시작할 수 있다는 점 유의 부탁드립니다. 자료구조 개념을 다시 복습하는 겸 자바로 다양한 자료구조를 구현하는 과정을 기록해보려고 한다. 다른 사람이 자료구조를 공부할 거면 C언어로 하는 것을 추천하기도 했지만 자바만의 자료구조 구현 방식이 있을 것이고, 개념은 언어의 문제가 아니라 생각했기에 자바로 시작해보려고 한다. ArrayList 내가 아는 ArrayList의 개념은 다음과 같다. 자바의 Collection 프레임워크에 포함된 List의 구현체이다.내부적으로 Array(배열)을 이용해서 구현하고 있다.배열로 이루어져 있기에 조회에 강한 이점을 가지고 있다. 위 개념만 ..
오늘은 개발자들의 컨퍼런스? 느낌의 자리를 마련해 주신 분이 있어서 학동역의 모드라운지에 다녀왔다.https://www.google.com/maps/place/%EB%AA%A8%EB%93%9C%EB%9D%BC%EC%9A%B4%EC%A7%80+%ED%95%99%EB%8F%99%EC%97%AD%EC%A0%90/@37.5122616,127.0291598,15z/data=!4m2!3m1!1s0x0:0xfd45e66d59414607?sa=X&ved=1t:2428&ictx=111 모드라운지 학동역점 · 서울특별시 강남구 논현동 132-4★★★★☆ · 이벤트홀www.google.com 나는 다양한 멘토분들의 이야기와 개발 네트워크를 쌓고 싶어서 멘티로 참여해서 다녀왔다. 멘토분은 총 세 분이셨으며 백엔드, 인프..
만약에 다음과 같은 상황이 주어진다고 가정해 보자. 고객 : 이게 저희 내부망에서만 사용하고 싶은데... 혹시 내부망의 IP만 들어오고 나머지는 막아줄 수 있나요? 저희 아이피는 전부 135.235.xxx.xxx으로 되어있어요~ ??? : 그게 되겠어요? 네 됩니다. 먼저 서버 개념부터 같이 살펴봐야 하는 요구사항이다. 사용자가 특정 웹사이트에 접속을 하게 되면 보통 WEB -> WAS 순서대로 접속하게 된다.(웹서버를 따로 안 두고 WAS만 둬서 사용하는 경우도 있다. WAS가 웹 서버의 역할도 같이 겸비하기 때문) 여기서 사용자의 요구는 본인들이 사용하는 IP 대역만 통과시켜 달라고 요청이 들어왔었다. 그러기 위해서는 아래처럼 WEB의 접속을 막던가, WAS의 접속을 막아야 한다. ..
https://product.kyobobook.co.kr/detail/S000001982516 대화의 품격 | 이서정 - 교보문고대화의 품격 | 108가지 상황별 대화 비대면 시대 대화법 권말 부록 50만 베스트 작가 최신작 언택트 시대에도 대화는 계속된다 ‘탈(mask)커뮤니케이션’을 위한 대화의 기술 댓글은 삭제돼도 품격product.kyobobook.co.kr 가을이 왔다. 도도도..독..독서의 계절 저렴하게 책을 구매할 기회를 얻게 되어 '대화의 품격'이라는 책을 구매하게 되었다. 처음에는 저녁에 집에서 읽기 시작했으나, 저녁에는 공부하고 게임하고 운동하느라 사실 책 읽는 시간이 아깝다고 느껴졌다. 그래서 출, 퇴근 시간 지하철을 이용해 짬짬이 독서를 시작했다. '대화의 품격' 책은 한 페이지..
AES를 통해 암, 복호화를 진행하고 있었는데 복호화를 하던 도중 아래의 에러 메시지를 마주했다. Input length must be multiple of 16 when decrypting with padded cipher (복호화를 진행할 때는 길이는 16의 배수여야 한다.) 대충 예상하기로는 길이가 안 맞다거나, 알고리즘이 다르거나라고 생각했다. 인터넷을 찾아보니 대표적인 발생 원인은 아래와 같다. 1. 암호화 후 다른 방식으로 또 암호화를 한 경우. 즉 AES로 암호화 하고 BASE64로 한번 더 암호화 했다면 BASE64 디코딩부터 해야 한다.-> 나의 경우는 이중 암호화는 없었기에 위 상황은 아니었다. 2. 애초에 암호화가 되어있지 않은 경우 암호화를 해놓은 데이터인 줄 알았지만 알고보..
이번 글은 김영한 님의 실전 자바 - 고급 2편을 참고했습니다. 네트워크에서는 클라이언트와 서버가 서로 데이터를 주고받는다. 이때 클라이언트는 주로 무언가를 요청하는 주체를 말하고, 서버는 요청을 받아 응답을 하는 주체를 의미한다. 만약에 컨트롤러와 서비스로 대입을 해본다면 여기서 컨트롤러는 정보를 요청하는 주체니 클라이언트가 되고, 서비스는 응답을 제공하는 주체니 서버의 역할을 담당하게 된다. 그러면 클라이언트와 서버는 어떻게 데이터를 주고받을까? 데이터를 주고받기 위해서는 먼저 서로간의 연결이 진행되어야 한다. 그 연결을 하는 방법이 TCP 연결이다. https://qkrqkrrlrl.tistory.com/139 즉 서로 간의 연결을 지향한다는 의미. 신뢰성을 보장하기 위한 방법 2. 연..