전체 글 98

부트캠프 수료 후 공부 계획하기

벌써 최종프로젝트가 끝난지 일주일이 흘렀다. 다음주인 4월 19일까지 이력서 주차를 마치고 공부 계획을 세워보려한다. 당장 취업을 할 생각은 없지만, 이력서 피드백을 받을 경우가 많지 않을 것이라 생각된다. 약 4개월간 부트캠프를 하면서 배웠던걸 한 줄 요약하자면 '개발하는 플로우' 정도는 배운 것 같다. 물론 실무와 비교하면 하늘과 땅 차이겠지만...! 4개월의 커리큘럼이라 그런지 진도가 너무 빨라서 이해하지 못하고 넘어간 개념, 미처 학습하지 못한 내용이 많았다. 스파르타측에선 바로 취업전선에 뛰어드는게 낫다고 말하지만.. 현재 취업시장의 상황을 고려했을 때 나의 배경, 수준을 보자면 경쟁력이 너무 없다. 애초에 고졸 비전공자가 4개월 공부하고 취업한다는게 말이 되나 싶기..

... 2024.04.12

BuySell - 최종 프로젝트 종료

BuySell https://www.notion.so/40-Four-T-46a46435ffb44c168c20e25ad82f7da7 40 (Four T) | Notion ‼ 회의 요약 💬 &피드백 모음💜 band-wavelength-b24.notion.site 목차 프로젝트 소개 팀소개 프로젝트 계기 주요기능 개발기간 기술스택 서비스 구조 와이어프레임 API 명세서 ERD 프로젝트 파일 구조 기술적 의사결정 Trouble Shooting 프로젝트 소개 중고 거래 플랫폼으로 개인 간의 중고 거래를 더욱 쉽게 접근할 수 있게 매칭해주는 게시판 형태의 서비스입니다. 중고 물품을 판매하는 글을 작성할 수 있고 구매자가 구매 요청을 하면 판매자와 구매자가 매칭 됩니다. 팀소개 팀장 부팀장 팀원 팀원 김성현 황승현 ..

BuySell - 주문 조회

구매한 상품에 대한 리뷰와 평점을 남길 수 있는 로직이 구현되었다. 이제 마이페이지에서 주문내역을 조회 후 리뷰를 작성할 수 있게 주문조회 기능을 구현중인데, 현재 정책상 삭제된 게시물에도 리뷰를 작성할 수 있게 되어있다. 그러나 주문조회 시 softDelete가 true인 게시물을 조회할 수 없는 에러가 발생했다.. soft delete된 데이터를 조회하기 위해서 3가지의 방법이 있다. JPQL등에서 직접 처리하기 실무에서는 다양한 상황들이 나타나기 때문에 모든 상황을 직접 다룰 수 있게 JPQL을 사용하는 것을 권장드립니다. 참고로 실무에서는 대부분의 조회 쿼리가 단순하지 않기 때문에 JPQL을 자주 사용하게 됩니다. 하이버네이트 @Filter 대안으로는 하이버네이트 @Filter를 사용할 수 있는데..

BuySell - S3 이미지업로드 (2)

버킷에 이미지 업로드가 정상적으로 작동하는것을 확인했다. 그래서 이제 그 게시글에 대한 이미지인걸 어떻게 찾아서 가지고 올까? 라는 생각을 했다. (이미지 업로드 되면 request에서 쓰려고 imgurl 부분을 주석으로 해놨는데 까먹음) 고민 한 방법들 1. 퍼블릭 URL을 변수로 어딘가에 저장해두고, 프론트에서 input type hidden 을 사용해서 어떻게 어떻게 구현하기 (그냥 생각만 함) 2. 이미지 URL을 백 서버에서 저장 후 관리하는 법 사실 몇가지 더 있었는데, 대부분 프론트에 대한 내용이라 생략했다. 그리고 이해가 안갔음.. 일단 나는 백엔드 공부를 하는 사람이니까.. 당연히 2번을 선택했다. 게시글에 대한 이미지 URL을 저장하는 로직이 없었기 때문에, 이미지 업로드를 시도하면 아..

BuySell - S3 이미지 업로드

S3를 사용해 이미지 업로드 기능을 구현해보려고 한다. S3 버킷을 채택한 이유! 1. 서비스의 가용성 이 거의 100%이다. (서비스를 제공할 수 있는 상태) 2. 저렴한 비용 사용한 만큼 비용을 낸다. 장기간 보관을 하지만 빈도수가 낮은 파일들 (ex: 법적 보관기간 5년 파일)은 타입 저장방식을 달리해 비용 절감이 가능 (파일 access 빈도수에 따라 보호수준을 차등할 수 있고 차별화 된 비용을 지불할 수 있다.) 확장성 AWS가 망하지 않는 한 원하는 만큼 서비스를 사용할 수 있다... 고성능 AWS Region을 선택해 가까운 Region에 데이터를 관리함으로써 네트워크 지연시간을 최소화 할 수 있다. 관련 자료의 양 AWS cloud 서비스에 대한 자료의 양이 많기에 문제 해결이 보다 쉬울 ..

BuySell - 선착순 쿠폰 발급기능 (3)

전에 고민했던 발급 과정을 변경하기로 했다. 미리 생성해 둔 쿠폰을 발급하는 방법이 아닌, 쿠폰 발급 요청이 들어오면 생성하고 발급하는 방법으로 변경했다. 쿠폰을 생성 후 발급하는 방법은 쿠폰이 필요한 시점에서 생성이 되기 때문에 불필요한 쿠폰을 생성하는 것을 방지할 수 있고, 현재 제약사항에 쿠폰의 만료기한 기능이 있기때문에 발급시점에서 관리를 하게 된다면 조금 더 유연하게 쿠폰을 관리할 수 있다고 생각했다. 그리고 이미 Redis를 적용해 동시성 제어를 사용하려했기 때문에, 생성과 발급을 동시에 처리하는게 프로젝트에서 추구하는 방향성이 맞다고 생각한다. Redis를 사용한 동시성 이슈를 학습했던 내용을 적용시켜서 코드를 작성해봤다. RedisCouponRepository @Repository clas..

nGrinder - 스크립트 작성하기

일단 나는 kotlin을 사용중인데, Groovy가 뭔지 모르는 사람임.. 부하 테스트를 하기 위해서 Groovy 스크립트로 작성되어야 한다는데 무슨말인지 몰라서 한참을 찾았다. nGrinder에서 kotlin을 직접 실행을 지원하지 않는다. 코틀린 코드로 테스트를 하기 위해선 Groovy 스크립트를 사용해야한다. (ㅅㅂ) 스크립트를 작성하기 위해서는 1. 테스트 할 해당 서비스의 엔드포인트를 알아야한다. 2. 스크립트를 작성한다 (어캐씀?) 3. 스크립트를 검증 후 실행한다.... 이 스크립트가 자바코드로 되어있어서 아직 나는 자바코드를 작성하는법을 모르기 때문에.. 지피티에게 내 테스트코드를 변환해달라고 맡겼다. 분명 코틀린을 배우고 있는데, 자바 코드를 더 많이보는 것 같다.. 빨리 자바 공부해야지..

Setting 2024.03.24

nGrinder 설정하기

선착순 쿠폰기능을 구현을 완료했다. 테스트 케이스는 모두 성공을 했는데, 이제 실제 환경과 비슷하게 설정을 해 부하테스트를 해보려고 한다. 그러기 위해서 nGrinder 설치 및 설정을 해야하는데 이게 꽤 헷갈려서 기록해두려고 한다. 현재 nGrinder 최신버전은 3.5.9버전이다. nGrinder 다운로드 링크 (네이버 Github으로 접속한다.) https://github.com/naver/ngrinder?tab=readme-ov-file GitHub - naver/ngrinder: enterprise level performance testing solution enterprise level performance testing solution. Contribute to naver/ngrinder ..

Setting 2024.03.24