깃허브 블로그로 이사했다.
티스토리 Blog
챌린지 팀에서 프로젝트를 시작한지 벌써 2주를 지나 3주차 진행중이다.
✔️ 챌린지 팀에 대한 간단한 소개
► 챌린지팀 🔥
→천만 건 이상의 데이터
혹은대량의 트래픽
을 다루는 등 기술적 챌린지에 초점을 맞춘 팀
► 목적
→ 기획 - 개발 - 회고 스프린트 loop를 매주 반복하면서 프로젝트 완성하기
→ 기술적 의사결정에 대한 히스토리를 기록하고, 성능 개선에 대한 스토리텔링!
→천 만건 이상의 데이터
혹은대량의 트래픽
이 발생하는 환경에서도기능을 안정적으로 제공
하는 깊이있는 설계 경험
✔️ 2주간 무엇을 했는가 ?
1, 2주차에는 MVP를 최소화하여 구현했다.
이전까지는 활용하지 않은 테스트코드
도 작성해보았다. junit
강의를 통해 공부하여 팀원들이 다같이 적용해보았다.
현업에서도 그렇고 테스트코드가 매우매우 중요하다고 한다. 틈틈히 공부가 필요하다!
본코드 작성보다 테스트코드 짜는게 더 어렵게 느껴졌다… 원래그런건가…? 어지럽다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Test
@DisplayName("로그인 성공")
public void loginSuccessTest() throws JsonProcessingException {
/* given - 데이터 준비 */
MemberLoginReq memberLoginReq1 = new MemberLoginReq("이메일" ,"비밀번호");
String body1 = om.writeValueAsString(memberLoginReq1);
/* when - 테스트 실행 */
HttpEntity<String> request1 = new HttpEntity<>(body1, headers);
ResponseEntity<String> response1 = rt.exchange("/api/member/login", HttpMethod.POST, request1, String.class);
DocumentContext dc1 = JsonPath.parse(response1.getBody());
String result1 = dc1.read("$.result");
String msg1 = dc1.read("$.msg");
/* then - 검증 */
assertThat(result1).isEqualTo("success");
assertThat(msg1).isEqualTo("로그인 완료");
}
또한 우리팀은 대용량 데이터를 가지고 놀아야 되기 때문에 다른 기능들은 최소한의 기능만 구현했다.
데이터들은 Selenium
, BeautifulSoup
을 활용하여 크롤링을 하거나, faker
를 통해 더미데이터
생성하기로했다.
이 데이터들을 활용하여 트래픽 처리, 백엔드 모니터링 서비스 및 성능테스트 등 다양한 방식을 활용하여 접근 할 예정이다.
차차 내용을 정리해서 올려보려한다.
✔️ 느낀점 ( 4L )
“Liked” (좋았던 것)
- 새로운 것을 접하는 것(테스트코드, 새로운 기술도입을 위한 학습과정)
- 화목한 분위기로 팀원들이 많이 도와줌
“Learned” (배운 것)
- Junit을 활용한 테스트코드 작성 방법 (단위 테스트 및 통합 테스트)
- 많은 구글링을 통해서 검색하는 방법 익히기 (핵심단어를 활용하여 에러 검색)
“Lacked” (부족했던 것)
- 신중하게 코드를 작성하고 PR 올리기 (잦은 이슈생성으로 인한 불필요 이슈 추가)
- 기초적인 자바,스프링 지식 부족으로 코드 작성시 어려움이 있었음.
“Longed for” (바라는 것)
- 새로운 기술을 공부하고 습득하여 적용시켜보기
- 기초 다지기(자바, 스프링 등)
4L 형식 으로 느낀점을 정리해보았다.
팀원들도 다같이 이렇게 회고를 하고 있는데, 보기 좋은 것 같다. 이번주도 엄청나게 빨리 지나갔다.
우리 팀원모두 한번도 경험해보지 못한 기술을 활용하여 프로젝트를 진행하려고 하다보니 어려움이 있었지만, 조금씩 자리가 잡혀가고 있는 것 같다. 안될 건 없다. 공부하고 적용하고 깨우쳐보자.