안녕! 우아한테크코스 5기 [스탬프크러쉬]팀 깃짱이라고 합니다. 스탬프크러쉬 서비스의 소스 코드 바로가기 사장모드: stampcrush.site/admin 고객모드: stampcrush.site 💋 인트로 스탬프크러쉬 서비스는 인터넷 상에서 종이쿠폰을 관리할 수 있도록 도와주는 서비스 이다. 스탬프크러쉬 서비스의 기획에 대한 전반적인 틀을 설명한 글을 읽으면 어느 정도 이해할 수 있듯, 우리는 서비스 운영을 위해서는 실제 카페 사장이 필요했다. 이번 스프린트에서 정말 감사하게도 사용하겠다는 카페 사장님이 생겼고, 10월 초부터 서비스하게 되었다. 이번 포스팅에서는 우리가 5차 스프린트 동안 어떤 목표를 가지고 어떤 노력을 통해 서비스 유저를 구하게 되었는지에 대해서 포스팅해보려고 한다. 💋 5차 스프린트..
💋 오늘 한 일 오늘 팀원들이 우리의 실 사용자 카페에 가서 이야기를 하고 왔다. 원래 오늘부터 사용할 예정이었는데, 사장님이 좀 피드백을 줘서 더 버그를 잡고 담주부터 사용하기로 했다. 사장님이 생각보다 더 사용하고 싶어하고, 우테코 기간이 끝난 뒤에도 한 번 사용하기 시작했다면 계속 사용하고 싶어 한다고 하셔서 더 책임감이 막중하게 생겼다 헤헤 브랜치 관련해서 우리는 feature → develop, develop → main 모두 Squash & Merge를 사용하고 있었는데, main 브랜치에 이후에 develop의 반영내용을 머지할 때마다 브랜치에 conflict가 나는 문제가 발생했다. 좀 찾아보니… develop → main에서는 Squash & Merge를 안 하는게 좋다고… 이 글에서 아..
💋 오늘 한 일 오늘은 데모데이! 임시 회원 ↔ 가입 회원 데이터 연동 이 이번 스프린트의 메인 기능 중 하나인데, 프론트엔드 코드가 운영 서버에 아직 반영되어 있지 않아서 연동 테스트 후 머지했다. 다행히 아슬아슬하게 시연에 성공 아침에 연동 테스트하다가 9.22 깃짱사태를 일으켜버렸다…! 기존에 가입되어 있던 레오의 oauth_id, oauth_provider를 지우고, nickname을 레오의 뒷번호인 6099로 바꾸고, customer_type도 REGISTER로 바꿔야 하는 일이 있었는데, update문에서 내가 where문을 넣지 않은 바람에 모든 레코드들의 닉네임이 6099로 바뀌어버림... 저기 데이터에 지난 런칭 페스티벌 때 가입해준 모든 크루들의 전화번호가 들어있는데.... 그래도 다행..
💋 오늘 한 일 어느덧 내일이 5차 데모데이…! 어제 내 파트 발표자료는 다 만들어서, 오늘은 백엔드 요구사항을 챙겨봤다. 팀원들이 모여서 TPS를 계산해봤는데, 우리 서비스에는 아주아주 낙관적으로 (현실적인 범위 내에서 대박난 쪽으로) 생각해도, 많은 계산을 통해서 1초에 5명의 유저가 요청을 보낼 것 같다고 결론을 내렸다. 그래도 서버 자체가 얼마만큼의 부하를 견딜지에 대해서는 테스트해봤다 >
💋 인트로 안녕하세요. 우아한테크코스 5기 깃짱이라고 합니다. 이번 포스팅에서는, 로컬에서 MySQL 설치하고 IntelliJ에서 실행하는 법에 대해서 알려줄게요! 💋 MySQL 설치 MacOS에서 brew를 설치해 놨다면 매우매우 간단합니다. MacOS가 아니거나, brew가 설치되어 있지 않다면 우선 MySQL을 설치한 후 아래의 방법을 따라해주세요! brew 업데이트 brew update MySQL 설치 brew install mysql 아래와 같이 설치가 되게 된다. ==> Downloading https://ghcr.io/v2/homebrew/core/mysql/manifests/8.1.0 Already downloaded: /Users/gitchan/Library/Caches/Homebrew/..
💋 오늘 한 일 아침에 와서 IoC, DI에 대한 강의를 들었음. 허브의 IoC, DI 구분법이 기억에 남음. 금요일(2일 후)에 있을 5차 데모데이를 위해서 전체 팀원이 모여서 역할을 정리함. 나는 임시 회원 ↔ 가입 회원 데이터 연동에 대한 발표자료를 만들기로 했음. 전에 작성했던 포스팅 참고해서 금방 발표자료 만들 수 있었음! 우리 프로젝트 쿼리를 4분의 1씩 해서 백엔드 4인방이 모두 정리하고, 꼭 필요한 곳에 인덱스도 적용했음. 하마드의 미션을 리뷰해줬음. Request Changes 보냈음. 로컬에 MySQL 설치해서 혼자 인덱스 관련 실습을 하고 있음…! 💋 감정회고 서버 부하 테스트를 하면서 톰캣 쓰레드 설정값을 정하려고 하는데, 지표도 뭐가 정확한지 모르겠고, 테스트용으로 사용할 nGri..
💋 데이터베이스 관련 명령어 데이터베이스 생성: CREATE DATABASE databasename; 데이터베이스 사용: USE databasename; 데이터베이스 삭제: DROP databasename; 💋 인덱스 관련 명령어 인덱스 생성: CREATE INDEX indexname ON tablename (column1, column2, ...); 인덱스 삭제: DROP INDEX indexname ON tablename; 인덱스 상태 확인: SHOW INDEX FROM tablename; 💋 실행 계획 관련 명령어 실행 계획 보기: EXPLAIN SELECT column1, column2, ... FROM tablename WHERE condition; 실행 계획의 종류와 의미: id: SELECT..
💋 오늘 한 일 드디어 MVC 구현하기 2단계 PR을 보냈음. 구구의 강의를 들었는데, 이번 주제는 점진적 리팩터링이었음. 오늘 2시에는 팀원 전원이 모여서 이제까지 작성한 develop 브랜치의 내용을 main 브랜치로 머지함. 이게 그 main에 머지한 PR인데, 너무 웅장하다ㅋㅋㅌㅋ security 파일을 제대로 같이 커밋에 넣지 않아서였음! 백엔드 4인방 모여서 오늘은 웹서버 성능 테스트를 해봄. 어떻게 해봐야하는지 다들 첨이라 아직 감이 안오는데, 톰캣에서 쓰레드 설정 바꿔가면서 해보고 있음 ㅎㅎ 💋 감정회고 요즘 깃짱코딩 전성기인가? 일별 방문자가 엄청나게 많아졌다. 기분이 좋다 >
💋 인트로 이 포스팅은 우테코 코치 구구의 강의를 듣고 깃짱이 정리한 글입니다. 💋 달리는 기차의 바퀴를 갈아끼울 수 있을까? 우리는 처음부터 완벽한 설계와 완벽한 코드를 작성할 수 없다. 시장 상황은 계속 바뀌고, 참여하는 개발자들의 역량도 계속 변한다. 기술은 발전하고, 지금 사용하던 기술은 언젠가 레거시가 된다. 달리는 기차(운영중인 서비스)의 바퀴를 바꿀 수 있어야 한다. 점진적인 리팩터링을 통해서! 💋 다 뜯어고치자: 원대한 재설계의 꿈 결론부터 말하면, 지금 코드를 다 뜯어고치는건 좋은 방법이 아닐 때가 많다고 한다. 물론 현재 프로젝트의 규모가 작다면, 레거시에 허덕이는 것보다는 그냥 새로 만드는 것이 더 빠를 때도 많을 수 있다. 하지만, 원대한 재설계, 즉 뜯어고치는 것은 아래와 같은 순..
💋 오늘 할 일 인수테스트에서 회원가입 로직 새로 만든 회원가입 API로 대체하기 Manager.customer , Manager.sample, Visitor.coupon Spring MVC 미션 2단계 구현하기 API에서 사용하는 쿼리 정리하기 수요일까지 Manager.customer , Manager.sample, Visitor.coupon 쿼리 최적화에 대한 의견 정리하기 수요일까지 Manager.customer , Manager.sample, Visitor.coupon ManagerCafeFindApiController.findAllCafes() API 인수테스트 작성하기 톰캣의 쓰레드 설정 적절값 생각해보기 화요일까지