Spring Security를 로그인에 적용하던 중, 로그인을 성공하고 인증 객체가 제대로 생성이 되었음에도 302 상태 코드가 발생하여 다음 페이지로 넘어가지 않는 상황이 발생했다.1\. Spring SecurityContext 인증 정보 손실SecurityConte
이번 주는 독특하게 화, 목이 휴일이었다. 출근은 월, 수, 금만 하면 되었는데 휴일이 많은 만큼 여유 있으리라 생각했지만 오히려 배로 피곤했다. 하루 쉬고 출근하니 월수금이 월월월 같았기 때문이다.게다가 쳐내야 하는 업무들이 있다 보니 집에 있어도 계속 업무 진행을
어쩐지 요즘 블로그를 회고만 쓰는 것 같다. 일이 바쁘다보니 막히는 부분을 공부해도 정리할 시간이 도무지 나지 않는다. 이번 프로젝트 분량만 얼추 마무리되면 신경 썼던 부분들을 블로그에 다뤄볼 수 있지 않을까.개발 측면에서 골치 아픈 것은 중요한 기능을 개발할 때보다
입사 후 계속 써내려가던 회사 일기가 이만큼 밀린 것도 처음이다. 그만큼 회사 내에서 그리고 개인적으로 일이 많았다는 뜻이기도 하다.어느덧 프로젝트 1차 점검할 때가 다가왔다. 처음 프로젝트 설명을 듣고 나에게 어떤 업무가 떨어질까 전전긍긍하던 때를 지나 열심히 일한
월요일부터 평온하던 모든 흐름이 바뀌었다. 출근할 때까지만 해도 평소와 다름이 없을 거라 생각했는데 오후에 이르러 회사가 발칵 뒤집힐 일이 생겼다. 자세한 이야기는 다음에 다룰 수 있을 것 같지만 아무튼 그 소식을 듣는 순간 동요가 커서 일이 손에 잡히질 않았다.일주일
이번 주부터 설계와 세팅을 끝내고 본격적인 개발에 접어들었다. 초반에 미리 작성해둔 코드도 있었는데, 휴가를 마치고 돌아와보니 너무 엉망이라 싹 다 뜯어고쳐서 다시 pr했다. 동료 분이 코드를 확인하고 저번 주와 너무 다르지 않냐고 놀라셨을 정도였다. 하지만 저번 주는
html input 태그에 value 속성이 할당되었음에도 화면에 value 값이 노출되지 않았다.현재 value 속성은 자바스크립트를 활용해 동적으로 할당되고 있었다.다만 할당하는 방식이 틀렸다.attr로 value를 지정하여 할당하고 있다. 이 경우 id 속성을 수
본격적인 API 개발에 앞서 필요한 세팅들이 어느 정도 정리되었다. 처음 개발을 시작할 당시만 해도 개발 세팅이라 하면 깃, 인텔리제이, 협업 툴 마련하기 수준이라고 생각했다.개발 세팅은 말 그대로 개발하기 위한 세팅을 일컫는다. 즉, 본격적인 개발에 앞서 적용할 기술
spring security 개발하며 swagger를 적용하다 문제가 생겼다. 에러를 보는 순간 발생 이유를 파악할 수 있었다.나는 API 보호를 위해 spring security를 적용했다. 그리고 swagger는 API 명세서를 자동으로 작업해 주는 도구다. 그렇다
개발자를 꿈꾸는 사람들이라면 '오픈 소스'라는 단어를 한번쯤은 들어봤을 것이다. 그리고 오픈 소스에 두려움을 느끼는 사람도 있을 것이다. 나 역시 그랬다. 오픈 소스란 대단한 사람들이 모여서 꾸리는 곳이고, 내가 기여할 부분은 없을 거라고 여겼다. 그러다 우연한
벌써 일주일이 지났다. 하루하루 바쁘게 살았기 때문에 시간이 빨리 간 것 같은데 돌이켜보면 생각보다 한 게 없는 것 같기도 하다.본격적인 개발에 들어가면서 필요한 기본 세팅은 마쳤고, 도입해야 하는(사실은 도입하고 싶은) 기술에 따른 아키텍처도 그렸다. 다만 팀장님이
Apache kafka는 분산 메시지 스트리밍 플랫폼이로 대용량 데이터 스트림을 안정적으로 수집, 저장, 전송 및 처리하는 데 사용되는 소프트웨어이다. 특히 대용량 데이터 처리 및 실시간 데이터 스트리밍에 적합하다.분산 아키텍처: 여러 브로커로 구성된 클러스터를 형성하
외부에서 URL만으로 API 콜을 할 수 없게 만들기 위한 방법이다.Spring Security 기본 설정이 완료된 이후를 기점으로 작성되었다.@Value 어노테이션의 값은 application.yml에 설정된 값을 기반으로 작성하면 된다.appname, 토근 이름,
Spring security는 인증, 권한 관리, 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는 데 도움을 주는 프레임워크다. 일반적으로 로그인, 로그아웃, 세션 관리, 권한 등 플랫폼에 맞춰 작업되는 인가&보안 기능을 효율적이고
기나긴 설계 시간이 마무리를 지었다. 화면 설계서와 DB 구조도 어느 정도 윤곽이 나왔다. 이를 기반으로 개발만 하면 된다고 생각했다.하지만 최종 보고를 위한 회의에서 많은 부분이 다시 수정할 목록으로 오르게 되었다.간단한 서비스였다면 이렇게까지 수정될 일이 없을지 모
백준 2609 최대공약수와 최소공배수최대공약수와 최소공배수를 구하는 법은 중학교 때 배운 바있다. 하지만 코드로 풀어내는 건 또 다른 문제였다.한참 고민하다가 검색해 보았더니 유클리드 호재법으로 풀라는 조언이 있어, 그 방식대로 코드를 작성하기 시작했다.유클리드 호재법
일반화 데이터 모델을 이해하기 전에, 먼저 일반화의 개념을 알 필요가 있다. 일반화는 복잡한 현실세계의 사물, 사건을 단순화하여 표현하는 추상화 기법이다. 조금 더 쉽게 풀어 쓰자면 '유사한 것의 집합'이라고 할 수 있다. 기존에 유사하다고 분류되는 것을 묶을 수도 있
이번 주는 오후마다 일이 몰아쳤다. 5일 간 있었던 일을 상세하게 적을 수는 없으나 정말... 정말이지 오후 시간이 이렇게 빨리 간 것은 입사 이래 처음이었던 듯하다.덕분에 화요일에 저녁 약속이 있었음에도 야근할 위기를 겪었다. 약속이야 취소하면 되고, 야근이야 맡으면
기능 개발을 하다보면 DB 접근을 줄이기 위해 캐시를 사용하는 경우가 종종 생긴다.그리고 그 캐시로 인해 에러를 겪는 경우도 제법 많다. 사실 내가 그랬다.내가 겪은 에러는 '동시 접속'에 관한 문제였다. 웹에 뿌려지는 모든 텍스트를 DB화 했는데 페이지에 접근할 때마