본문 바로가기

분류 전체보기

(47)
JSESSIONID가 뭐야? 요약 1. 톰캣에 최초 접근 시 톰캣은 응답 헤더에 sessionid 쿠키를 발급한다. 2. session cookie name을 별도로 지정하지 않았다면 기본값이 JSESSIONID 3. 톰캣은 JSESSIONID로 사용자의 세션을 구분한다. = 똑같은 request.getSession().getAttribute("키값") 했을때 내 정보만 보여진다. 회사에서 사용자의 요청을 여러 서버에 분배해서 처리할때 A서버(톰캣)에서 로그인 후 작업하다가 B서버(톰캣)로 요청이 전달됐을때 로그인이 풀리는 문제가 있었다. A서버 세션에 저장된 인증 정보가 B서버 세션에 없기때문에 그런것이었는데 결국엔 기존에 사용하던 사용 솔루션을 활용해서 처리했지만 세션에 대해서 조금 궁금한게 있어서 한번 찾아봤다. HttpSes..
스프링시큐리티 기본동작 원리 이글은 예전에 토이프로젝트에서 스프링 시큐리티를 사용했었는데 그때 마크다운으로 정리해놨던 내용이다. 외주를 맡긴 회사는 스프링 시큐리티를 사용하는데 다중 서버 환경에서 기존 SSO(Single Sign On) 가 제대로 동작하지않는 문제가 있었다. 그런데 어디가 문제인지, 어떻게 수정해야될지 모르겠다고 해서 대신 작업을 해줬다. 이 글을 다시 한번 슥 읽고 그쪽 소스를 보니 완전 낯설지는 않아서 수월하게 처리해줬다. 이럴 때 기록이 얼마나 중요한지 깨닫는다.. (근데 너무 힘들어서.. 안하는게 문제) 그래서 여기에 다시 기록해둔다. 여기저기 찾아서 스프링시큐리티를 쓰긴 썼는데 난 스프링 시큐리티 설정만 했는데..아이디와 비밀번호를 입력하면 언제 인증이 되는걸까? 이런 궁금증으로 스프링 시큐리티의 인증 흐..
[TDD, 클린 코드 with Java] 강의를 듣고나서 [TDD, 클린 코드 with Java] 17기 수료후기 [TDD, 클린 코드 with Java] 17기 수료후기 우선 이 강의는 NEXTSTEP에서 진행하는 강의인데 재직자를 대상으로 교육을 진행하는 곳이다! 우리가 지향하는 교육은 고통스럽고 힘듭니다 NEXTSTEP의 교육철학이라고 한다.. 실제로 이 과정의 수 pilming.tistory.com 수료 후기를 쓰긴 했지만 그것과는 별개로 강의를 듣는동안 들었던 생각같은걸 정리해보려고한다! TDD는 테스트 기술이 아니다 사실 TDD~ TDD 하면서 누구나 한번쯤은 들어봤을것같다 검색 한번만 해봐도 Test Driven Development(테스트 주도 개발) 이라고 나오는데 아! 테스트를 먼저 작성하는 방법론이구나 라고 바로 알수있다. 하지만 가장 중요..
[TDD, 클린 코드 with Java] 17기 수료후기 우선 이 강의는 NEXTSTEP에서 진행하는 강의인데 재직자를 대상으로 교육을 진행하는 곳이다! 우리가 지향하는 교육은 고통스럽고 힘듭니다 NEXTSTEP의 교육철학이라고 한다.. 실제로 이 과정의 수료율은 10 ~ 20% 인데 무려 80만원을 지불하고 자발적으로 신청하는 강의인데도 수료율이 그정도 밖에 안된다니 얼마나 힘든걸까.. 뒤에서도 말하겠지만 정말 고통스럽고 힘들었다.. 교육철학을 아주 제대로 실천중.. 우선 80만원이나 하는 강의를 회사 지원도 아니고 사비로 신청한건 답답함 때문이었다.. 하루하루 일정을 쳐내느라 전혀 발전없는 절차지향코드.. 겨우겨우 일정을 맞추고나서 새롭게 배정된곳은 테스트코드 한 줄 없이 10년간 유지해온 레거시 시스템이었다..if들여쓰기만 10번 물론 나도 테스트코드를 ..
python 백준1157 단어공부(BOJ1157) 문제링크 : https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 반복문과 조건문이랑 파이썬 대문자,소문자변경, 아스키코드 변환 함수정도 알면 쉽게 풀수있을것같다! #입력 input_str = input().upper() #알파벳 alphbet = [0] * 26 for i in input_str: alphbet[ord(i)-65] += 1 max_cnt = 0 max_val = 0 max_index = 0 for i in range(0,len(alphbet)): if alphbet..
python 백준2941 크로아티아 알파벳(BOJ2941) 문제링크 : https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 오랜만에 풀어본 문제.. 사실 이건 replace만 쓸줄아면 되는 문제였다 아무리 게을러져도 이렇게 간단한거라도 하나씩 풀어야되는데~!~!~!~! #입력 input_str = input() #크로아티아 알파벳 cro_alpha = ["c=","c-","dz=","d-","lj","nj","s=","z="] #치환 for i in cro_alpha:..
도커와 젠킨스로 스프링부트+그래들 프로젝트 배포(4/4) - 깃허브 webhook 설정 이 게시글은 도커와 젠킨스로 스프링부트+그래들 프로젝트 배포의 네번째 글입니다 이번엔 프로젝트의 깃허브에 push가 발생한다면 그것을 감지하고 젠킨스가 빌드 후 자동 배포하는것 해보겠습니다! 깃허브에 push가 발생하면 젠킨스가 자동으로 배포하기 제가 실습하는 환경입니다 서버 - AWS Lightsail 인스턴스 플랜 - $10 플랜 (메모리 : 2GB, 프로세스 : 1vCPU) OS - Ubuntu 20.04 LTS (20년4월에 나온 Long Term Support할 예정인 버전) 터미널 클라이언트 - mobaXterm (putty같은 소프트웨어. 본인이 편한걸 사용하시면 됩니다. 큰 의미 없습니다) 패키지 관리자 - apt (콘솔or터미널에서 패키시 설치할때 사용하는 패키지 관리 도구) 도커 - D..
도커와 젠킨스로 스프링부트+그래들 프로젝트 배포(3/4) - 젠킨스와 깃허브 연동 및 배포 이 게시글은 도커와 젠킨스로 스프링부트+그래들 프로젝트 배포의 세번째 글입니다 이번엔 젠킨스에서 깃허브 레파지토리를 연동해보고 자신의 프로젝트를 배포 해보겠습니다. 최종적으로는 젠킨스 컨테이너에서 DooD(Docker-Outside-Of-Docker)방식으로 스프링부트+그래들 프로젝트의 깃허브 레파지토리에 webhook을 설정해서 push가 발생하면 자동으로 젠킨스에서 빌드 후 배포까지 하는것이 목표입니다. 젠킨스에서 깃허브 연동하기 제가 실습하는 환경입니다 서버 - AWS Lightsail 인스턴스 플랜 - $10 플랜 (메모리 : 2GB, 프로세스 : 1vCPU) OS - Ubuntu 20.04 LTS (20년4월에 나온 Long Term Support할 예정인 버전) 터미널 클라이언트 - mobaX..