본문 바로가기

우아한테크코스

(25)
5차 데모데이 회고 짧았던 일주일 간의 방학이 끝나고 레벨 4가 시작이 되었다 레벨 4 부터는 강의와 미션이 추가되기 때문에 프로젝트에 좀 소홀해질수밖에 없다는 이야기를 들었다. 그래서 스프린트 미팅때 각자 프로젝트, 미션, 개인 공부의 비율을 어떻게 가져갈지 논의하는 시간을 가졌다. 다들 생각이 비슷비슷했는데 아무래도 우리의 포트폴리오 중에 가장 중점이 되는 부분이 프로젝트일 것이기에, 프로젝트의 완성도를 높이고 실제 사용자를 유치하고 싶어했다. 그래서 다들 평균 40 정도는 프로젝트에 투자하는 방향으로 의견을 냈고, 우테코가 끝나고나서도 취준을 하지 않고 학교로 돌아가는 크루들은 유지보수를 계속해서 하기로 했다 (취준 하는 크루들도 여력이 닿으면 하는걸로. 서버비는 그때가서 생각!) 이번 데모데이에서 가장 중요 이슈였던..
Tomcat 구현하기 (1) - Servlet 우아한테크코스 레벨 4 첫번째 미션을 진행하면서 정리하는 내용 Servlet Java 기반의 웹 기반의 요청에 대해 동적으로 처리해주는 역할(WAS) 웹 서버가 동적인 페이지를 제공할 수 있도록 도와준다 클라이언트의 요청을 처리하고 그 결과를 반환한다 html 을 사용해서 요청에 응답한다 Java Thread 를 이용해서 동작한다 Servlet Container 서블릿을 관리해주는 컨테이너 대표적으로 톰캣 서블릿 웹서버간 통신을 도와준다. (소켓 사용) 서블릿 생명 주기 관리 멀티쓰레드 지원 1. 톰캣의 Connector 중 하나를 통해 request 를 전달받음 2. 요청을 받으면 HttpServletRequest 와 HttpServletResponse 객체를 생성한다 3. Engine 에서 적절한 서..
API 문서화에 RestDocs + Swagger UI 적용하기 API 문서 자동화를 해야 할 필요성을 느끼면서 알게 된 방법은 2가지가 있었다. 1. Swagger 2. RestDocs 처음에는 사용이 간편한 Swagger를 사용했었다. build.gradle 에 implementation 'org.springdoc:springdoc-openapi-ui:1.6.6' 위의 의존성 하나만 추가해주고 코드에 @Configuration public class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI(); } } 이 Config 클래스만 등록해주면 간편하게 API 문서가 자동화가 되는 것을 확인할 수 있었다. 하지만 API 가 어떤 동작을 하는 API 인지, URI의 쿼리 파라미터나 ..
런칭 페스티벌 회고 레벨 3 의 마무리인 런칭 페스티벌을 잘 끝마쳐서 기분이 매우 좋은 상태로 회고를 작성한다. 마지막 스프린트에서 가장 중점을 두고 구현했어야 하는 부분들은 그동안 미룰 수 밖에 없었던 회원가입/로그인과 우리의 숙원사업이었던 쿠폰 커스텀 기능(이미지 저장) 이었다. 스프린트의 첫 날은 같은 코치들 아래 있는 두 팀(펀잇, 슉) 과 함께 하는 버그리포팅 데이였다. 사실 버그리포팅을 할때는 딱 보이는 것이 프론트 화면이어서 UI 관련 버그 리포팅이 많았다. 그래서 스프린트 첫주차에 우리 프론트엔드 크루들은 가득 쌓인 버그 이슈들을 수정하면서 디자인까지 엄청난 변화를 주었는데.. 정말 고생이 많았을 거였다😢 스프린트의 첫 주차에 백엔드는 추가 구현해야 할 간단한 API (스탬프 적립내역 조회, 리워드 사용 내역..
3차 데모데이 회고 3차 데모데이는 아쉬움 그 자체다.... 코로나 유행이 다시 왔는지 몰랐는데 면역력이 떨어져 있는 사이 어디서 감염이 된 건지 코로나에 걸려버렸다.. 하필 월요일에 확진 판정을 받는 바람에 데모데이가 있는 주를 통째로 결석하고 말았다 😭 데모데이까지 참여하지 못하게 되어서 너무 아쉽지만 우리 팀이 3차 데모데이까지 잘 마치고 점점 서비스가 완성이 돼 가고 있는 거 같아서(아직 할 일이 많지만...!) 좋다. 이번 스프린트의 목표는 고객 - 사장 간 한 사이클을 돌 수 있게 해서 서비스를 사용할 수 있도록 하는 것이었다. 2차 때는 사장 모드만 구현했었기 때문에 사장이 발급해 준 쿠폰을 확인할 수 있는 방법이 없었다. 그래서 이번 스프린트 때는 고객 모드에서 쿠폰 조회 해오는 기능과, 사장 모드에서 쿠폰 ..
git fetch, rebase, merge, pull 명령어 확실히 알아보기 Git을 1년 이상 사용하고 있지만 아직도 확실히 알지 못해서 사용할 때마다 미심쩍은 부분을 가진 명령어들에 대해 확실하게 정리하기 위해서 글을 작성한다. 사실 나 혼자 하는 프로젝트라면 Git 명령어들을 막 사용해도 별 상관이 없었다. 혹시나 잘못 사용해서 커밋 이력이 다 날아가더라도 내가 다 알고 있는 코드들이니까 다시 복구하면 된다. 그런데 이제 협업 프로젝트를 진행하다 보니 Git 명령어들을 잘못 사용해서 다른 사람의 작업 내역을 날아가게 할까 봐, 커밋 이력이 꼬이게 될까 봐 걱정이 되었다. git push 하려니까 git pull 하라고 경고창이 뜨고 그래서 git pull 을 입력했더니 warning: Pulling without specifying how to reconcile diverg..
2차 데모데이 회고 기획을 주로 했던 1차 데모데이가 끝나고 2차 데모데이를 준비하기 위해 개발을 시작하게 되었다. 개발을 시작하기 전에 해야 할 일들이 많았다. 테이블 설계, 엔티티 설계, 구현할 기능들에 대한 API 명세 정하기를 해야 했는데.. 2차 스프린트 일정을 맞추기 위해 백엔드는 2차 스프린트 첫 주는 9시까지 출근해서 1시간 동안 해야 할 일을 했고 그래서 일정을 맞출 수 있었다. 기획의 빈 구멍을 채우자 기획은 충분히 했다고 생각했는데도 실제로 기능을 구현하고 테이블을 설계하려다보니 기획을 수정해야 할 필요성을 느꼈다. 특히 유효기간을 설정하고, 바꿀 수 있는 기능에 대해서 이런저런 의견들이 많이 오고 갔었다. 우리는 서비스의 고객인 사장님에게 선택권을 많이 주기 위해서 유효기간을 쿠폰 혹은 스탬프에 설정할..
1차 데모데이 회고 레벨 3가 시작이 되었다🙂 내가 배정받은 팀의 주제는 도장깨기! 여기저기 카페를 다니면서 받게 되는 종이 쿠폰의 관리가 제대로 되지 않아 정리가 되지 않는 서랍을 가졌던 경험이 있거나, 내가 쿠폰의 도장을 어디까지 모았는지 모르거나 카페에 쿠폰을 가지고 오지 않아 보상을 제대로 받지 못했던 경험이 많이 있을 거라 생각한다. 그래서 우리팀의 주제는 흩어져있는 종이 쿠폰의 번거로움을 없애고자 기획된 종이 쿠폰 통합 관리 서비스이다. 팀명은 바로 스탬프크러쉬 👊 1차 데모데이까지 해야 할 중요한 일은 크게 두가지였었다 1. 팀의 그라운드 룰 정하기 2. 페르소나와 유저 시나리오 정하기 그라운드 룰 정하기 4달간의 프로젝트가 시작되는 만큼 함께 할 팀원들과 친해지고 규칙을 정하는건 정말 중요한 일이다. 처음엔 ..