회고이번주는 지난주에 이어서 배당금 관련 백엔드 프로젝트를 구현하는 것을 이어서 진행하였다.주요 진행 내용은 사용자 회원가입 및 권한에 따른 접근 가능 API 구분, 사용자 예외처리, 로그 레벨에 따른 로그 적재에 대해서 실습을 진하였다.2주간 하나의 프로젝트를 수행하면서 느낀 것은 첫 주의 코드를 자체적으로 리뷰하면서 놓쳤던 부분들에 대해서 수정을 하고 안정화도 거치며 마무리 지었다는 점에서 스스로에게 높은 점수를 주고 싶다.새롭게 시작하는 16주차도 강의를 잘 수강하고 한 주간의 목표를 달성하여 또 뿌듯함을 느끼는 한 주가 되도록 노력해야겠다.학습 내용- [스프링/용어] JWT실습 내용- [GitHub] dividend (배당금 프로젝트)사람은 누구나 자신이 할 수 있다고 생각하는 그 이상의 일을 할..
JWT (Json Web Token)- 웹 애플리케이션에서 사용자 인증 및 정보 교환을 위해 널리 사용되는 표준이다.JWT (Json Web Token)의 기본 구조Header (헤더)- 토큰의 타입 (일반적으로 "JWT")- 사용할 서명 암호화 알고리즘Payload (페이로드)- 실제 전달하고자 하는 데이터(사용자 ID, 역할, 만료시간 등)를 포함하며, 이를 클레임(Claim)이라고 한다.- 로그인 사용자 정보, 토큰 만료 시간 등이 포함된다.- JWT 토큰은 한번 생성 후 서버에서 관리하지 않으므로, 필히 토큰 만료 시간을 설정해야한다.- 생성된 토큰 정보가 유출되면 Decompile을 통해 정보를 볼 수 있으므로 개인 정보나 패스워드와 같은 정보는 담기지 않도록 유의해야한다.Signature (서..
회고이번주 웹 스크래핑을 활용하여 배당금을 수집하는 기능의 백엔드를 구현하는 첫 주차였다.- 웹 페이지를 분석하고 스크래핑 기법을 활용하여 필요한 데이터를 추출/저장 스크래핑 기법을 사용하기 위해 Jsoup 라이브러리를 사용하여 필요한 데이터를 수집하였다.- 서비스에서 캐시의 필요성을 이해하고 캐시 서버를 구성 캐시 서버의 기능을 구현하기 위해 Redis를 로컬에 설치하고 이를 연동하여 데이터를 캐싱하고 삭제하는 기능을 적용하였다.위 과정들을 수행하면서 다양한 기술 스택을 활용하여 백엔드 기능 구현에 필요한 스킬들을 하나씩 차근차근 배우면서 다양한 경험을 하고 있는 것에 만족스러움을 느끼는 한 주였다.학습 내용- [자바/자료구조] Trie- [스프링] Spring Scheduler실습 내용- [Gi..
Spring Scheduler란?- Spring Framework에서 제공하는 기능이다.- 일정에 따라 작업을 자동으로 실행할 수 있게 도와준다.- 주기적인 작업이나 정해진 시간에 수행해야할 작업을 처리하는 데 주로 사용된다.Spring Scheduler 특징다양한 스케줄링 옵션고정 주기(Fixed Rate)- 지정된 시간 간격으로 작업을 반복 실행한다.- 작업에 소요되는 시간이 지정된 시간보다 길어진다면 두 수행이 겹쳐서 발생할 수 있으므로, 이 작업을 고려하여 적용해야한다.고정 지연(Fixed Delay)- 이전 작업이 완료된 후 지정된 시간 간격으로 작업을 실행한다.Cron 표현식- 복잡한 주기를 설정할 수 있어 특정 시간, 날짜, 요일 등에 따라 작업을 실행할 수 있다.- 스케줄러 정규 표현식을 ..
Trie(트라이)란?- 트리형 자료구조이다.- 문자열 검색을 효율적으로 저장하고 탐색하기 위해 사용된다.- 중복해서 단어를 저장할 필요가 없다.Trie의 구조루트 노드- 트리의 최상위 노드이며, 보통 빈 값을 가진다.노드- 문자 : 노트가 나타내는 문자- 자식 노드 : 해당 문자의 다음 문자를 나타내는 자식 노트의 리스트- 종료 플래그 : 해당 노드가 문자열의 끝인지 여부를 나타내는 플래그Trie의 주요 연산삽입 (Insert)- 삽입하고자 하는 문자열의 한 글자씩 가져온다.- 트리의 루트부터 적합한 노드 위치를 찾아가면서 저장한다. 이 때, 없으면 새 노드를 생성한다.- 마지막 글자까지 삽입이 되면 isEnd 플래그로 단어의 끝을 표시한다.검색 (Search)- 입력받은 문자열을 한글자씩 파싱(Pars..
회고이번주는 지난 주 진행했던 계좌관리 시스템의 고도화 작업을 진행할 계획이었으나, 신규 2주간의 과제가 이번주에 마감이라는 사실을 알고 고도화 작업은 잠시 미루고 과제에 집중하였다.과제를 수행하면서 외부 API를 연계하는 것과 Spring Scheduled 어노테이션을 사용하는 방법을 학습하였다.업무를 하다보면 스프링 배치를 활용하여 데이터를 관리하는 소스를 보는 경우도 있었는 데, 실제 실습을 통하여 어떻게 수행되고 이를 통하여 결과를 확인하는 것을 알게되었다.하루하루 바쁜 날들이 연속되고 있지만, 주말을 활용하여 최대한 과제 수행 등 학습을 하며 하나하나 기술 습득을 해나갈 것이다.실습 내용[GitHub] weather (날씨 일기)사람은 누구나 자신이 할 수 있다고 생각하는 그 이상의 일을 할 수..