개발일지 11

[기술적 의사결정] RabbitMQ vs. Kafka? | S3 이미지 업로드 및 URL 저장 RabbitMQ 도입

1. 도입 배경프로젝트에서 S3 이미지 업로드 및 URL 저장 중 발생한 문제를 해결하는 과정에서 RabbitMQ를 도입하게 되었습니다. 다음과 같은 이유로 RabbitMQ를 선택하였습니다:비동기 처리의 필요성: 이미지 업로드와 URL 저장 작업을 요청과 별도로 처리하여 클라이언트 응답 속도를 개선하려 했습니다.메시지 안정성: 여러 이미지 업로드 요청을 안전하게 큐에 넣고, 문제가 발생했을 때 재처리할 수 있는 안정적인 시스템이 필요했습니다.라우팅 요구: 특정 조건에 따라 메시지를 다르게 처리해야 하는 복잡한 작업 흐름을 지원할 라우팅 기능이 필요했습니다.  2. 기술 비교특성KafkaRabbitMQ메시지 전달 방식로그 기반(스트림 저장)브로커 기반(큐와 주제 사용)설계 목적대규모 데이터 스트리밍 및 분..

개발일지 2024.11.08

[트러블슈팅] 트랜잭션 적용 안됨 | @Transactional 적용 안됨 | 알림 안보내짐

1. 문제 정의관심 물품으로 설정한 물품의 가격이 변동되었을 때, AOP로 알림을 보내려고 함.하지만 service에서는 제대로 oldPrice와 newPrice가 인식되지만 AOP에서는 oldPrice가 newPrice의 값과 일치하게 인식되는 문제 발생.@AfterReturning(value = "execution(* com.sprarta.sproutmarket.domain.item.service.ItemService.updateContents(..))", returning = "itemResponse", argNames = "joinPoint,itemResponse") public void notifyUsersAboutPriceChange(JoinPoint joinPoint, Object it..

개발일지 2024.11.07

[개발일지] KPT 회고 | 잘하고10조의 뉴스피드 프로젝트 제작 회고

Keep ( 현재 잘 진행 되고 있고, 계속 했으면 좋겠는 것)Problem ( 불편하게 느끼며, 개선이 필요하다 느끼는 것)Try ( Problem에 대한 문제 개선, 당장 실행 가능 한 것)  Keep 1.  팀원들이 각자 맡은 바를 포기하지 않는 모습이 좋았습니다.2. 문제가 발생했을 때 팀원들과 같이 소통하며 방법을 찾으려고 노력한 것3. 코드 작성 후 완료가 되면 모두가 한 번씩 실행해본 것이 좋았다.4. 팀원 전부 적극적인 태도로 프로젝트에 참여한 것이 좋았다.5. 팀워크가 너무 좋았습니다! Problem1. 포스트맨 사용법이 익숙치 않아서 조작이 서툴렀던 점이 아쉬웠습니다.2. 해야 할 일을 다 끝냈을 때 개선 방향을 팀원들끼리 찾지 못한 것3. 겹쳐있는 기능들이 있는데 이런 기능은 순서를 ..

개발일지 2024.09.09

[개발일지] 깃 리드미 꾸미기 | 깃 리드미 작성법 | 깃 리드미 이모티콘 삽입 | 깃 리드미 마크다운 문법

이번에 뉴스피드 프로젝트를 완성 후 readme를 작성해보았습니다. https://github.com/nbcamp-newsfeed-10/nbcamp-newsfeed GitHub - nbcamp-newsfeed-10/nbcamp-newsfeedContribute to nbcamp-newsfeed-10/nbcamp-newsfeed development by creating an account on GitHub.github.com 깃허브 링크도 걸어놓겠습니다!!       프로젝트 레포지토리를 생성하면 이렇게 하단에 리드미 파일을 추가할 수 있게 되어있습니다.이때 Add a README를 추가하게 되면  이런 형태로 마크다운 문법을 사용하여 리드미를 원하는대로 꾸며서 작성할 수 있습니다.요즘 가방꾸미기, 키링..

개발일지 2024.09.06

[개발일지] Spring Boot 프로젝트 | 할일 관리 프로젝트 | 3 Layer Architecture 구현

저번 시간에 포스팅한 3 Layer Architecture 구조를 기반으로할일 관리 프로젝트를 Spring Boot로 제작해보았습니다.https://kimslab01.tistory.com/28 [Spring] 3 Layer Architecture | Spring 3 Layer✔  3 Layer Architecture란? 서버를 개발 관점에서 각 계층별로 역할을 분리하는 개념입니다.        1. Presentation Layer, Controller역할: 사용자가 입력한 데이터의 형식이나 간단한 유효성 검사를kimslab01.tistory.com궁금하신 분들은 포스팅 참고해주시면 감사하겠습니다.  할일을 관리하는 프로젝트를 구현하기 위해서는일정을 저장, 단건 조회, 수정할 수 있습니다.일정은 작성 유..

개발일지 2024.08.23

[개발일지] 자바 첫 프로젝트를 마무리하며

첫번째 주에는 HTML/CSS로 만드는 프로젝트였다.HTML/CSS는 배운 적이 있기도 하고 어떤 코드를 짜면 바로바로 확인이 가능하기 때문에사실 코드를 짜는 것보다는 디자인을 어떻게 할 지 고민하는 것이 더 힘들었다. 자바는 언어 자체가 HTML/CSS보다 어렵다.객체지향이라는 개념 자체가 어려워서 코드를 짜는 것에 애를 많이 먹었다.모르는 개념을 찾아보고 구글링하며 공부하고 그래도 모르겠으면 팀원들에게 힌트를 얻었다. 깃허브 사용도 어려웠다.브랜치를 따로 파고 풀 리퀘스트로 머지하는 과정에서 내가 잘못된 코드를 입력해서 다같이 초기화가 되었다.그 뒤로는 항상 함께 화면공유하며 해결해 나가서 이제는 이 과정을 실수없이 할 수 있고, 다른 누군가에게 알려줄 수 있다. 팀원들과 협업에서 나의 부족함을 느끼..

개발일지 2024.08.12

[개발일지] KPT 회고 작성 | 개발 돌아보기

Keep 팀원1) 협업이나 문제점이 생겼을때 같이 화면공유를 및 소통이 잘되는것이 좋았습니다.  팀원2) 프로젝트를 기간 내에 끝낸 부분에 만족하고 있다.팀원들이 함께 화면을 공유하며 conflict merge한 것을 이어가면 좋겠다. 그리고 코드를 완성하는 것에서 멈추지 않고 완성도를 높이려는 시도를 하는 것도 이어가면 좋겠다. 팀원3) 소통하실 때 의견을 잘 내주시는 부분이 좋았다.다들 열심히해서 추가기능까지 구현하신 것  팀원4) 저희 팀의 분위기가 처음부터 끝까지 좋았던 것이 좋았습니다.보고할 것이 있으면 바로 보고하는 것이 좋았습니다.      Problem 팀원1) 개발할때 문서화 하는 부분이 필요하다고 느꼇습니다Git Merge를 할때 conflict가 발생할때 해결하는 부분이 조금 어려웠..

개발일지 2024.08.08

[개발일지] 엣지 케이스 작성 | 테스트 케이스 작성 | 예외 처리

프로젝트가 완성되고 나면 무엇을 해야 할까요?엣지 케이스를 작성해야 합니다.프로젝트에 대해 발표할 때, 같은 프로젝트를 발표하더라도제대로 엣지 케이스를 알고 발표하는 것과 시연할 때 바로 실행해보는 것은 느낌 차이가 있습니다.준비가 된 것과 안 된 것은 확실히 차이가 있을 것 같아저희 조는 발표를 맡은 팀원의 원활한 발표를 위해 꼼꼼하게 엣지케이스를 작성해보았습니다.기능이 많아서인지 테스트 케이스만 거의 30개 정도 나왔습니다.. ㅋㅋㅋㅋ 작성법은 매우 간단한 편입니다.   테스트 케이스 1: 수강생 등록에서 필수 과목 목록에서 3개 미만, 선택 과목을 2개 미만으로 선택했을 때예상결과: 수강생 등록에 실패했다는 오류 메시지 출력   테스트 케이스 2: 수강생 등록에서 이름과 필수 과목 3개 이상, 선택..

개발일지 2024.08.08

[개발일지] GitHub merge 해결 | git branch 만들기 | GitHub Pull Requests

이번 개발에서 가장 힘들었던 점이 바로깃허브에서 생기는 오류였습니다 ㅋㅋㅋ 깃허브로 작업해신 분들은 아시겠지만,제대로 처리해두지 않으면 충돌과 오류 모두 경험할 수 있습니다... 저는 처음에 제대로 깃허브에 대해 배우지 못한 채로 깃허브 사용을 했었는데하다보니 너무 충돌과 오류가 많아서 팀원들에게 민폐를 끼치더라구요 ㅠㅠ그래서 이번에 완전히 브랜치를 파서 풀 리퀘스트하는 방법을 배웠습니다! 깃허브를 처음 사용해시는 분들도 이거 보시면 어떻게 깃허브를 사용하면 되는지 알기 쉽도록자세히 알려드리도록 할게요!         일단 쉬운 이해를 도와드리기 위해 계산기 클래스를 만들어서 깃허브에 올려놓았습니다.  Calculator.java를 만들기만 하고 안에 구현은 하지 않은 상태입니다.그 상태에서 github..

개발일지 2024.08.07

[개발일지] GitHub 사용하기 | conflict 해결 | branch 생성

개발하면서 GitHub 사용을 많이 하는데요.깃허브를 잘 사용하면 팀원들과의 코드 공유가 쉬워지기 때문에 잘 사용하는 것은 중요합니다.오늘은 깃허브 사용법에 대해 알려드리도록 하겠습니다.       1. 팀원 1명이 초기 프로젝트 생성하기  2. git init-> git init으로 깃허브 사용을 시작  3. git add & git commit(master)$ git add .(master)$ git commit -m "메세지"add . 은 파일에 있는 모든 것을 추가한다는 의미입니다. 특정 파일만 추가하고 싶다면(master)$ git add 이렇게 작성해주시면 됩니다. commit은 어떤 내용을 추가하는지 알려주는 메세지를 적는 것입니다.어떤 부분을 수정하였는지 정확히 적어주면 팀원들이 수정사항을..

개발일지 2024.08.05