문제 상황1 주문(Order)은 여러개의 주문 아이템(OrderItem)과 연결되어 있습니다. 각 주문 아이템은 상품정보를 가지고 있고, 주문과도 연관관계를 가지고 있습니다. 하나의 주문 내역을 가져오는 과정에서 2번의 쿼리문이 나왔습니다. 문제 원인 주문(Order)과 주문 아이템(OrderItem)은 ManyToOne 관계이므로 주문을 조회할때는 기본적으로 fetch.LAZY 전략을 사용합니다. 따라서 주문 아이템(OrderItem)은 프록시 객체로 저장되지만 전달하는 DTO에서 아래와 같은 코드를 사용함으로서 N+1 문제가 발생합니다. @Getter public class OrderDto { private Long orderId; private Long memberNumber; private Loc..
이전에 다른 과제에서 jwt 토큰으로 로그인을 구현해 본 적이 있습니다. -> 원티드 프리온보딩 지원 과제(github 링크) 이 때에는 단순히 토큰 기반 로그인이 많이 사용된다하여 구현했었는데요. 사용한 이후에 해당 기술에 대해 더 찾아보니 아래와 같은 이점이 있었습니다. 1. 토큰 방식은 서버가 클라이언트의 상태를 가지지 않는 stateless한 방식 2. stateless하기 때문에 언제든 token만 있으면 회원 검증가능 3. session을 사용하지 않는 앱 쪽에서도 로그인 기능 확장이 가능(전통적인 웹에선 session 기반으로 인증 값을 가지고 있어야 함) 이전에는 이러한 이해가 부족한 채로 구현했었기 때문에 로그인 시 간단히 access token만 발급하는 방식이었습니다. 그렇지만 네이버..
작년 4월 코로나를 걸린 이후 또 코로나에 걸려버렸습니다. 밖으로 나간건 공부하다 중간에 커피사러 나갔다 왔던 것 밖에 없는데 참 운도 없죠. 사실 키트로 검사해보지 않아서 정확히 코로나인지는 모릅니다...만 증세가 독감과 코로나 중간쯤이기 때문에 아마 맞을겁니다..ㅠ.ㅠ 하루 정도는 아무것도 못하고 누워있었고 그동안 공부하던 루틴이 깨져버리다보니 다시 영점 조절이 필요하던 차... 역량검사 사이트를 발견합니다. https://www.jobda.im/event/dchamps2309 잡다 | 디챔스 디챔스는 JOBDA에서 주관하는 개발자 경진대회입니다. www.jobda.im 잡다는 사실 기존에 특정기업에서 역검용으로 사용한다는 이야기를 들어서 알고 있던 사이트였는데, 개발쪽도 있는줄 몰랐습니다. 뭔가 프..
어느덧 한 달이 후딱 지나가버렸습니다. 기업 과제를 풀고 잘 수행하면 해당 기업에서 마음에 들면 면접까지는 이루어지는 시스템으로 알고 지원했던 인턴십이었지만, 알고리즘을 주로 배우는 과정이 끝이 났습니다. 4주간 여러가지 알고리즘 중 중요성이 높은 것들을 수업에서 자세하게 배울 수 있어서 좋았습니다. 투포인터, 슬라이드윈도우, 분할정복, 배열, 링크드리스트, 스택, 큐, 해쉬테이블, 재귀, 정렬, 트리, DB인덱스, Trie, Heap, 그래프, DFS, BFS 등... (형광펜 칠해진 부분들을 배웠고, 나머지 중요한 알고리즘도 있어 별도의 공부는 필요하긴 합니다.) 그리고 과제로 리트코드 150제 중 일부가 주어져서 이것들을 최대한 고민하고 내용들을 블로그에 정리했습니다. 고민하고 해결하고 하는 일련의..
4주 인턴십 과정 중 벌써 2주가 지났습니다. 알고리즘 문제는 여전히 주어지고, 새로운 알고리즘을 또다시 공부하고...상당히 바쁩니다. 거기에 팀까지 결성되어서 정말 정신없는 하루하루를 보내고 있습니다. 팀 결성 팀은 크게 프로젝트를 만드는 팀과 취업 준비를 하는 팀으로 나누어 결성이 됐습니다. 직접 제가 사람을 모은 것은 아니고 프리온보딩 인턴십 내에서 팀 프로젝트를 하고 싶은 사람들을 신청자를 모으기에 신청을 했습니다. 신청자들을 모아 처음 인턴쉽에 들어올때 제출한 과제의 코드 실력과 언어를 기준으로 적절하게 팀을 분배하였다고 합니다. 제가 속한 팀은, 예상했지만 다 저보다 잘하는 분들이었습니다. 저는 비전공에 학원수료를 한 것이 전부이기 때문에 많은 부분이 부족하였고, 그렇기 때문에 잘하는 분들에게..
어느덧 1주차가 훌쩍 지났습니다. 원래는 일요일에 회고록을 올리려고 했으나 오늘까지 코딩문제를 고민하느라 이제서야 올립니다. 블로그를 보면 계속 리트코드를 풀었던 포스팅이 올라가고 있는데 이게 미션이거든요....😎 기존과 바뀐점 기존 프리온보딩 인턴십에서는 팀 단위의 기업과제를 해결했었습니다. 하지만 이번 기수에는 팀 단위 기업과제가 아니라 알고리즘을 푸는 것을 초점을 맞춘다고 하여 알고리즘 관련된 교육이 진행되고 있습니다. 내주는 과제 또한 코딩테스트 문제인데요...이런 코테문제도 기업에서 내주는 과제이기 때문에 틀을 벗어난 것은 아니라고 합니다. 아쉬운 것은 현재 국비를 수료하긴 했지만 기술과 코드 퀄리티가 턱없이 부족하다보니 새로 프로젝트를 만들고 있는데, 만약 팀이 결성된다면 기업과제를 하며 자연..