기회는 찬스
close
프로필 배경
프로필 로고

기회는 찬스

  • 분류 전체보기 (109)
    • Language (20)
      • Java (19)
      • Design Pattern (1)
    • Tech (24)
      • Spring (18)
      • JPA (3)
      • QueryDSL (1)
      • Gradle (2)
    • 개발 생각 (1)
    • Database (4)
      • Mysql (4)
      • Redis (0)
    • 네트워크 (1)
    • 운영체제 (2)
    • IDE (9)
      • Intellij (6)
      • vscode (2)
      • datagrip (1)
    • 인프라 (11)
      • Docker (2)
      • Jenkins (7)
      • Github Actions (1)
      • GCP (1)
    • 형상관리 (2)
      • gitlab (2)
      • git (0)
    • 외부활동 (28)
      • CS 면접 끝장내기 - 데이터베이스 1기 (5)
      • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
      • CS 면접 끝장내기 - 자바 2기 (0)
      • TDD, 클린 코드 with Java 17기 (7)
      • ATDD, 클린 코드 with Spring 8기 (6)
      • 항해플러스 5기 (5)
    • 프로젝트 (0)
    • 회고 (6)
    • 기타 (0)
      • 제미니의 개발 실무 (0)
  • 홈
  • Github
  • LinkedIn
  • 방명록

[항해 플러스 5기 백엔드 4주차] Usecase 개발

이번 4주차는 3주차에 만든 문서를 기반으로 콘서트 예약 서비스에 주어진 요구사항 개발을 시작한다 구현할 API는 크게 다섯가지가 있다.유저 토큰 발급 API예약 가능 날짜 / 좌석 API좌석 예약 요청 API잔액 충전 / 조회 API결제 API대기열을 하는 이유대기열을 하는 이유는 무엇일까?유량 제어를 하기 위함이다. 유량 제어를 하는 이유는 흐름을 제어하는 것을 의미한다.즉, 트래픽이 몰릴 경우를 대비하여 이를 제어하고 디비의 부하를 막는것이 목적이다. 부하의 종류는 읽기 부하와 쓰기 부하가 있고, 부하의 대상은 CPU, 메모리, 디스크가 있다.부하에 대해서도 생각을 해야 한다. 가령 메이플에서 몬스터를 때릴때마다 디비에 데이터를 삽입하면 디비의 쓰기 부하가 많을 것이다.그렇다면 메모리에 저장하고, ..

  • format_list_bulleted 외부활동/항해플러스 5기
  • · 2024. 7. 12.
  • textsms
[항해 플러스 5기 백엔드 3주차] 시나리오 분석 및 문서 작성

[항해 플러스 5기 백엔드 3주차] 시나리오 분석 및 문서 작성

1~2주차는 TDD와 클린 아키텍처를 학습 하고 작은 요구사항을 구현하면서 익숙해지는 과정이였다.3주차가 본격적인 프로젝트의 시작이였다.장난감 프로젝트용 시나리오를 하나 선택한 뒤, 실제 대규모 서비스 회사에서 경험할 수 있는 일들인 동시성 처리, 메시지 큐, AWS 인프라 구축, 장애 대응 등 직접 체험하면서 점진적으로 고도화 해가는 과정을 경험할 수 있다. 3주차 과제는 다음과 같다.시나리오 선택 및 분석3~5주차 마일스톤 작성시퀀스 다이어그램 작성API 명세서 작성Mock API 작성ERD 설계서비스 시나리오 선택e-커머스 서비스와 콘서트 예약 서비스 두개가 있었다. e-커머스 서비스는 상품 주문 서비스를 구현하는 것이였다.Key Point는 주문에 대한 동시성 처리와 재고 관리였다. 콘서트 예약 ..

  • format_list_bulleted 외부활동/항해플러스 5기
  • · 2024. 7. 5.
  • textsms
[항해 플러스 5기 백엔드 2주차] 클린 아키텍처

[항해 플러스 5기 백엔드 2주차] 클린 아키텍처

다양한 아키텍처를 알아야 할까?모두 적용하는 건 아니지만 학습은 해야 한다아키텍처는 준수해야 하는 제약을 넣는 것이라 볼 수 있다.단순히 요구사항을 만족하는 기능을 개발하고 끝나는게 아니라, 앞으로 유지보수 가능하고 지속적으로 성장 가능한 구조를 고민해야 한다. 이를 위해선 규칙이 필요하여 이러한 규칙은 아키텍처를 학습하고 적용하여 지킬 수 있다.좋은 아키 텍처 패턴은지속적으로 성장 가능한 안정적인 소프트웨어를 잡기 위한 가이드 라인지켜야 할 기본적인 개발 가이드 라인을 잡아주는 틀클린 코드의 중요성비즈니스 로직의 복잡할 수록 코드도 복잡해 진다. 구현에만 초점을 맞춘다면 하나의 클래스에 10,000줄이 넘는 코드가 작성될 수도 있고 하나의 메서드에서 코드의 depth가 10 depth가 넘어갈 수도 있..

  • format_list_bulleted 외부활동/항해플러스 5기
  • · 2024. 6. 22.
  • textsms
[항해플러스 5기 백엔드 1주차] TDD

[항해플러스 5기 백엔드 1주차] TDD

Why TDD?소프트웨어 규모가 커지면서 소프트웨어의 품질을 지속적으로 유지시키고 향상시키기 위해선 테스트 자동화의 중요성은 강조되고 있다.TDD는 유지보수 및 장애 발생시 대처를 유연하게 할 수 있는 방법론으로도 볼 수 있다.즉, 빠른 변화에도 유연하게 새로운 기능을 적용하고 변경할 수 있는 기반을 TDD를 통해서 다질 수 있다.테스트 코드 작성은 대부분 동의 하겠지만, TDD에 대한 반대 의견도 많다. TDD가 100% 좋다고는 할 순 없지만 좋은 방법론 중에 하나임은 틀림 없다.테스트 시나리오 및 케이스처음에 정한 테스트 시나리오를 바꾸지 않는 것이 Best지만, 처음부터 완벽한 시나리오를 짜는 것은 힘들다. TDD의 목표 중 하나는 좋은 소프트웨어를 설계하는 것이기 때문에 테스트 시나리오는 언제든..

  • format_list_bulleted 외부활동/항해플러스 5기
  • · 2024. 6. 22.
  • textsms

[항해플러스 5기 백엔드 OT] 시작하는 마음

1. 지금까지의 회고 2. 항해 플러스 참여 계기향해 플러스에서 지원해주는 모든 자원을 활용하여 경험해 보지 못한 기술을 배우고 많은 사람들과 함께 공부하고 성장하고 싶다. 3. 향후 5년뒤 커리어 방향성개발팀을 리드할 수 있는 개발 역량을 키우고 싶다. 4. 10주간의 목표큰돈을 투자한 만큼 그 이상의 배움을 얻어 가고 싶다.모든 미션을 pass한다는 마음가짐으로 과정을 진행한다. 5. 최종 목표 배지최소 레드 배지 이상

  • format_list_bulleted 외부활동/항해플러스 5기
  • · 2024. 6. 15.
  • textsms
ATDD, 클린 코드 with Spring 8기 종료 (모든 미션 수료)

ATDD, 클린 코드 with Spring 8기 종료 (모든 미션 수료)

과정이 2월 29일에서 일주일 연장되어 3월 6일날 모든 미션을 수료하였다. TDD 과정을 수료하고 배운걸 까먹지 않고 복리의 효과를 보기 위해 ATDD까지 수강 신청을 하였는데 정말 잘한것 같다. TDD 때는 잠을 줄이면서 까지 미션을 진행했는데 그 효과때문인지는 몰라도 ATDD 때는 잠은 푹자면서 미션을 진행했다. (그래도 힘들긴 했다 ㅎ) 어떻게 구현해야하나 고민을 하면서 고통을 느낄 때 마다 내가 성장하고 있구나!! 라고 위안을 삼았다. 이제는 테스트 코드에 많이 익숙해 졌다. 단위 테스트는 통과 했지만 막상 인수 테스트는 통과하지 못한 경우를 몸소 느끼면서 인수 테스트가 방어막 역할을 톡톡히 해주는구나 라고 느꼈다. 이번 과정에서도 다시 한번 객체지향적인 코드와 의존성을 고려한 설계에 대해서 많..

  • format_list_bulleted 외부활동/ATDD, 클린 코드 with Spring 8기
  • · 2024. 3. 6.
  • textsms
인수 테스트와 리팩터링 회고

인수 테스트와 리팩터링 회고

Step1 경로 조회 타입 추가Step1 경로 조회 타입 추가 PR package src/main/java/nextstep/subway/strategy/PathType.javaimport nextstep.subway.controller.dto.PathResponse;import nextstep.subway.controller.dto.StationResponse;public enum PathType { DISTANCE(Section::distance, (stations, value) -> PathResponse.distanceOf(StationResponse.listOf(stations), value)), DURATION(Section::duration, (stations, value) -> P..

  • format_list_bulleted 외부활동/ATDD, 클린 코드 with Spring 8기
  • · 2024. 3. 5.
  • textsms

인수 테스트와 인증 회고

Step1 즐겨찾기 기능 완성Step1 즐겨찾기 기능 완성 PR 3주차 미션을 시작하면서 한가지 깨달은 사항이 있었다. 2주차 까지는 restassured 요청시 공통 코드를 http method 기준으로 분리하였다. // AcceptanceTest protected ExtractableResponse get(String path, int statusCode, Map queryParams, Object... pathParams) { RequestSpecification requestSpecification = RestAssured.given().log().all(); if (queryParams != null && !queryParams.isEmpty()) { ..

  • format_list_bulleted 외부활동/ATDD, 클린 코드 with Spring 8기
  • · 2024. 3. 5.
  • textsms
인수 테스트와 TDD 회고

인수 테스트와 TDD 회고

Step1 구간 추가 요구사항 반영 Step1 구간 추가 요구사항 반영 PR 2주차부터 본격 적인 미션의 시작이였다. 난이도가 올랐기 때문이다. Line line = findBy(lineId); Sections sections = findBy(line); 지하철역의 리스트를 검증하는 부분에서 containsOnly를 사용했다. 아래와 같은 피드백을 받았다. 💡 같은 findBy인데 lineId를 넣으면 line이, line을 넣으면 sections가 나오는게 어색하게 느껴져요! 받는 변수타입으로 구분할 수 있지만 메소드명으로 구분해주는게 코드 가독성에 좋을 것 같아 아래와 같이 수정하였다. Line line = findLineBy(lineId); Sections sections = findSections..

  • format_list_bulleted 외부활동/ATDD, 클린 코드 with Spring 8기
  • · 2024. 3. 5.
  • textsms
인수 테스트와 E2E 테스트 회고

인수 테스트와 E2E 테스트 회고

Step1 지하철역 인수 테스트 작성 Step1 지하철역 인수 테스트 작성 PR 미션은 총 4주차까지 있고 지하철 시스템이란 도메인을 주제로 점진적으로 발전시켜 나가면서 ATDD와 TDD를 배운다. 1주차 Step1은 RestAssured를 사용하여 지하철역 목록 조회와 삭제 API 총 2개의 테스트 코드를 작성하는 미션이다. 구현하는데 크게 어려움은 없었다. assertThat(stationsNames).hasSize(1) .containsOnly("강남역"); 지하철역의 리스트를 검증하는 부분에서 containsOnly를 사용했다. 아래와 같은 피드백을 받았다. 💡 containsExactly() 메서드를 활용해 보셔도 좋을 것 같아요 containsOnly는 순서와 중복을 고려하지 않고 명시된 값이..

  • format_list_bulleted 외부활동/ATDD, 클린 코드 with Spring 8기
  • · 2024. 3. 5.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (109)
    • Language (20)
      • Java (19)
      • Design Pattern (1)
    • Tech (24)
      • Spring (18)
      • JPA (3)
      • QueryDSL (1)
      • Gradle (2)
    • 개발 생각 (1)
    • Database (4)
      • Mysql (4)
      • Redis (0)
    • 네트워크 (1)
    • 운영체제 (2)
    • IDE (9)
      • Intellij (6)
      • vscode (2)
      • datagrip (1)
    • 인프라 (11)
      • Docker (2)
      • Jenkins (7)
      • Github Actions (1)
      • GCP (1)
    • 형상관리 (2)
      • gitlab (2)
      • git (0)
    • 외부활동 (28)
      • CS 면접 끝장내기 - 데이터베이스 1기 (5)
      • CS 면접 끝장내기 - 컴퓨터 네트워크 2기 (5)
      • CS 면접 끝장내기 - 자바 2기 (0)
      • TDD, 클린 코드 with Java 17기 (7)
      • ATDD, 클린 코드 with Spring 8기 (6)
      • 항해플러스 5기 (5)
    • 프로젝트 (0)
    • 회고 (6)
    • 기타 (0)
      • 제미니의 개발 실무 (0)
최근 글
인기 글
최근 댓글
태그
  • #데이
  • #ㄹㄹ
  • #a
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바