오늘부터는 어제부터 시작된 프로젝트의 코드 작성을 시작했다. 이전에 경험해보지 못한 협업 방식들을 이용했기 때문에 살짝 걱정했는데 적응하고 나니 아주 편하다는 것을 알게되었다. Git, GitHub이나 여러 협업 도구들에 대해서도 따로 공부를 해보아도 괜찮겠다는 생각이 들었다. 여기에는 프로젝트 이후 시간에 풀어본 알고리즘 문제 풀이를 정리해보았다. 1. 알고리즘 문제 풀이오늘은 leetcode에 있는 '3. Longest Substring Without Repeating Characters' 문제를 풀어보았다.1-1. 풀어본 문제[문제]문자열 s가 주어졌을 때, 반복되는 문자가 없는 가장 긴 부분 문자열의 길이를 구하세요 - 예시 1입력: s = "abcabcbb"출력: 3설명: 답은 "abc"이고, ..
전체 글
백엔드 개발자
오늘부터 새로운 프로젝트가 시작되는 날이었다. 지난 번 프로젝트 때 아쉬웠던 부분을 잘 보완해서 이번 프로젝트에 적용해보고 싶었는데 오늘 하루 그런 부분들도 잘 이루어진것 같고 하루를 잘 알차게 보낼 수 있었던 것 같다. 여기에는 알고리즘 문제 푼 것 하나를 정리해보았다. 1. 알고리즘 문제 풀이오늘은 leetcode에 있는 '973. K Closest Points to Origin' 문제를 풀어보았다.1-1. 풀어본 문제[문제]points[i]가 X-Y평면의 [xi, yi]의 한 점을 나타내는 points라는 배열과 k라는 정수가 주어졌을 때, 원점 (0,0)에서 가장 가까운 k개의 점을 반환하세요. X-Y 평면에서의 두 점 사이의 거리는 유클리드 거리(예시, $\sqrt{(x_{1} - x_{2})^..

오늘은 스프링 심화 주차 과제를 제출하고, 그에 따른 해설과 세션을 보면서 시간을 보냈다. 그간 과제를 진행하면서 해왔던 것들과 비교하면서 따라가보니 꽤 재밌는 시간을 보낼 수 있었다. 여기에는 과제를 진행하다가 마주친 오류와 해결 방법을 간단하게 정리해보았다. JPA의 임베디드 타입을 사용하다가 발생한 문제였는데 간단하게 해결할 수 있었다. 1. JPA 임베디드 타입JPA의 임베디드 타입은 여러가지 장점으로 인해 사용하게 된다. 임베디드 타입은 하나의 값으로 생각할 수 있다. 이 임베디드 타입을 사용하면 DB의 테이블 구조가 아니라 객체 지향 모델에 집중할 수 있어 복잡한 객체 구조를 의미있는 단위로 분리할 수 있다는 장점이 있다. 여러 속성을 하나의 객체로 다룰 수 있기 때문에 여러 장점들이 생겨..

오늘도 Spring 개인 과제를 다듬고, 강의도 들으면서 시간을 보냈다. 욕심내서 이것저것 해보려고 했는데 그것보다도 확실하게 이해하고 넘어가는게 중요한 것 같아서, 과제 내용을 더 채우기보다는 조금 내용의 이해를 높이기 위한 공부를 했던 것 같다. 여기에는 과제를 진행하다가 발생한 문제에 대해 짧게 정리해보았다. 1. Spring 개인 과제오늘도 개인 과제를 조금 더 다음으면서 시간을 보냈다. 그러던 중 이상한 점을 하나 발견하게 되었다. GET 요청에 대해서는 인증 과정을 거치지 않도록 해두었는데도 401 Error가 발생하고 토큰 인증에 실패했다는 메시지가 뜨는 것이었다.실제 콘솔에서 확인한 예외는 LazyInitializationException이었다. 500번대 예외가 발생하지않고 401로 반환..
오늘은 Spring 개인 과제를 진행하면서 시간을 보냈다. 인증/인가 부분이 워낙 알아야할 새로운 것들이 많다보니 파악하는데 시간이 오래걸렸다. 어느 정도 파악을 하고나니 과제를 진행하는데 큰 어려움은 없었고 시간도 생각보다 오래 걸리지는 않았다. 여기에는 오늘 과제를 진행하면서 살짝 어려움이 있었던 부분에 대해 정리해보았다. 1. Spring 개인 과제오늘 스프링 개인 과제 중 인증/인가 부분을 진행하다가 살짝 어려움을 겪은 부분이 있었다. 인증을 받지 않은 사용자(로그인을 하지 않은 사용자)가 접근할 수 있는 것과 그렇지 않은 것을 분리해서 적용해두었고, 인증을 받은 사용자의 역할에 따른 인가처리까지 완료하였다. 다만 요구 사항 중 하나인 내가 쓴 글만 수정, 삭제가 가능하다는 부분에 대해서는 처리를..
오늘은 스프링 심화 강의 복습을 하면서 개인 과제도 진행해보는 시간을 가졌다. 그간 강의를 들으면서 완전히 이해 못했던 부분이나 코드들을 이해하려다보니 시간이 훌쩍 지나갔다. 내일 정도면 과제 필수 구현 부분은 끝마칠 수 있을 것 같다. 여기에는 오늘 풀어본 알고리즘 문제 풀이 내용을 간단히 정리해보았다. 1. 알고리즘 문제 풀이오늘은 프로그래머스에 있는 '문자열 여러 번 뒤집기' 문제를 풀어보았다. 1-1. 풀어본 문제[문제] 문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 re..
오늘은 휴일이어서 조금 쉬엄쉬엄 공부했던 것 같다. 스프링 시큐리티의 전체 구조를 파악하고, JWT에 대해서 조금 더 자세히 알아보는 시간을 가졌다. 여기에는 Spring에 설정 값을 주입하는 방법에 대해 조금 정리해보았다. 1. Spring 설정 값 주입하기민감한 데이터 같은 것들은 따로 파일로 관리하거나 환경변수 같은 것을 이용하면 GitHub과 같은 공개적인 저장소에 올리더라도 데이터를 보호할 수 있다. 여기에는 yml 파일에 필요한 설정값들을 입력해주고 그 입력 값들을 어플리케이션 안에서 주입받아 사용하는 법에 대해 정리해본다. 먼저 resources 패키지에 있는 application.yml 파일에 필요한 설정값들을 입력해준다.auth: jwt: issuer: moomoo secre..
오늘은 하루 종일 열심히 강의를 들었다. 스프링 심화 강의는 이전 강의들과 다르게 난이도가 상당했다. 복습하면서 이것저것 찾아볼 것도 많이 생길 것 같다. 여기에는 오늘 오전에 풀었던 알고리즘 문제 풀이 과정을 정리해보았다.1. 알고리즘 문제 풀이프로그래머스에 있는 '다리를 지나는 트럭' 문제를 풀어보았다. 1-1. 풀어본 문제[문제]트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게..