프라임닷 커리어 세션 참여 후기
프라임닷 커리어 세션 참여 후기 성장기록 2024. 3. 21. 16:37

커리어 세션 참여 신입으로 진입하는 개발자로서 바늘 구멍처럼 좁아진 채용시장에서 탈락의 고배를 잔 돌리기 하는 힘든 나날을 보내고 있습니다. 그러던 와중 가뭄에 단 비 같은 서류합격 하나가 나왔지만 결과적으로 그마저도 전산 오류로 취소되어 정신을 잃기 직전이었습니다. 여러곳에서 조언을 구하던 중, 이력서 피드백 세션에서 도움을 많이 얻었던 케일리 님께서 현직자 세션에 흔쾌히 초대해 주셨습니다. 이런 오프라인 미팅이 처음이기도 하고, 메일로 보내주신 내용만으로는 어떤 내용인지 잘 모르겠어서 가벼운 마음으로 들으러 갔습니다. 메인 세션 세션에 참여해주신 멘토님은 두 분으로 두나무 iOS 개발자 장혜준님, H2O Hospitality 개발자 진유진님이었습니다. 현직자를 만날 기회가 드문 취준생으로서 이렇게 좋..

트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 2. 동시 구매시 재고관리 접근
트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 2. 동시 구매시 재고관리 접근 성장기록/개인프로젝트 2024. 3. 11. 09:38

문제 상황 특정 일시에 오픈하는 예약 구매 특성상 동시에 주문처리가 많이 일어남 이 때에 실제 재고보다 더 많은 수량의 주문이 성공적으로 처리됨 문제 원인 주문 시 DB에 짧은 시간 동안 동시 접근이 일어나 여러 트랜잭션에서 동일한 데이터를 수정하려고 할 때 데이터 불일치 문제 발생 비즈니스 로직 public class StockServiceImpl implements StockService { // 기타 메소드 생략 @Override @Transactional public void decreaseStock(Long productId, int count) { log.info("재고 감소 요청 productId: {}, count: {}", productId, count); Stock stock = sto..

트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 1. 재고 관리 프로세스
트러블 슈팅 - 동시 구매 시 재고관리에 대한 고민 1. 재고 관리 프로세스 성장기록/개인프로젝트 2024. 3. 8. 19:30

문제 상황 특정 일시에 오픈하는 예약 구매 특성상 동시에 주문처리가 많이 일어남 이 때에 실제 재고보다 더 많은 수량의 주문이 성공적으로 처리됨 문제 원인 주문 시 DB에 짧은 시간 동안 동시 접근이 일어나 여러 트랜잭션에서 동일한 데이터를 수정하려고 할 때 데이터 불일치 문제 발생 재고관리 프로세스 예약 구매를 하는 서비스를 만드는 것이 목표였기 때문에 메인 서비스가 잘 돌아가게 하는 것이 매우 중요하다고 생각했습니다. 이 과정을 크게 두 가지 스텝으로 나누어 생각해보면 아래와 같습니다. 특정 시간에 구매가 활성화 됨 구매가 열리면, 상품의 재고보다 많은 주문 발생할 수 있음 사례 분석 이 과정에서 비슷한 레퍼런스를 생각해보니 크게 두 가지로 나눌 수 있었습니다. 큐넷(시험 접수) 인터파크 티켓(콘서트..

트러블 슈팅 - DB 연관관계에서의 N+1 문제
트러블 슈팅 - DB 연관관계에서의 N+1 문제 성장기록/개인프로젝트 2024. 3. 4. 04:03

문제 상황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 토큰을 관리하는 방법에 대한 고민
jwt 토큰을 관리하는 방법에 대한 고민 성장기록/개인프로젝트 2024. 3. 3. 13:37

이전에 다른 과제에서 jwt 토큰으로 로그인을 구현해 본 적이 있습니다. -> 원티드 프리온보딩 지원 과제(github 링크) 이 때에는 단순히 토큰 기반 로그인이 많이 사용된다하여 구현했었는데요. 사용한 이후에 해당 기술에 대해 더 찾아보니 아래와 같은 이점이 있었습니다. 1. 토큰 방식은 서버가 클라이언트의 상태를 가지지 않는 stateless한 방식 2. stateless하기 때문에 언제든 token만 있으면 회원 검증가능 3. session을 사용하지 않는 앱 쪽에서도 로그인 기능 확장이 가능(전통적인 웹에선 session 기반으로 인증 값을 가지고 있어야 함) 이전에는 이러한 이해가 부족한 채로 구현했었기 때문에 로그인 시 간단히 access token만 발급하는 방식이었습니다. 그렇지만 네이버..

디챔스 잡다 개발자 역량검사 후기
디챔스 잡다 개발자 역량검사 후기 성장기록 2023. 9. 29. 00:09

작년 4월 코로나를 걸린 이후 또 코로나에 걸려버렸습니다. 밖으로 나간건 공부하다 중간에 커피사러 나갔다 왔던 것 밖에 없는데 참 운도 없죠. 사실 키트로 검사해보지 않아서 정확히 코로나인지는 모릅니다...만 증세가 독감과 코로나 중간쯤이기 때문에 아마 맞을겁니다..ㅠ.ㅠ 하루 정도는 아무것도 못하고 누워있었고 그동안 공부하던 루틴이 깨져버리다보니 다시 영점 조절이 필요하던 차... 역량검사 사이트를 발견합니다. https://www.jobda.im/event/dchamps2309 잡다 | 디챔스 디챔스는 JOBDA에서 주관하는 개발자 경진대회입니다. www.jobda.im 잡다는 사실 기존에 특정기업에서 역검용으로 사용한다는 이야기를 들어서 알고 있던 사이트였는데, 개발쪽도 있는줄 몰랐습니다. 뭔가 프..

image