🌱 들어가기 전이번 포스팅에서는 빌더 패턴과 엔티티, 그리고 테스트에 대한 여러가지 조언의 내용을 살펴보자.- 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글입니다. ✏️ 지난 포스팅과 이어집니다 !https://deeper-dev.tistory.com/12 [테스트 코드와 설계] 의존성 주입과 의존성 역전을 활용하여 테스트 가능성 높이기🌱 들어가기 전이번 포스팅에서는 테스트에 활용되는 의존성 주입과 의존성 역전, 그리고 테스트 가능성을 높이는 과정을 살펴보자. - 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들deeper-dev.tistory.com🌱 빌더 패턴생성자가 지나치게 많아지는 문제를 해결할 수 있는 유연한 해결책객체 ..
🌱 들어가기 전이번 포스팅에서는 테스트에 활용되는 의존성 주입과 의존성 역전, 그리고 테스트 가능성을 높이는 과정을 살펴보자. - 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글입니다. ✏️ 지난 포스팅과 이어집니다 ! https://deeper-dev.tistory.com/11 [테스트 코드와 설계] 테스트에 대한 개발자의 고민과 이론 및 개념🌱 들어가기 전이번 포스팅에서는 테스트에 대한 개발자의 고민 내용과 이론 및 개념을 살펴보자. - 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글deeper-dev.tistory.com🌱 의존성💭 의존성컴퓨터 공학에서 의존성은 결합이다. 다른 객체의 ..
🌱 들어가기 전이번 포스팅에서는 테스트에 대한 개발자의 고민 내용과 이론 및 개념을 살펴보자. - 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글입니다. ✏️ 지난 포스팅과 이어집니다 ! https://deeper-dev.tistory.com/10 [테스트 코드와 설계] 테스트 코드 작성과 리팩토링🌱 들어가기 전이번 포스팅에서는 간단한 계산기 기능의 코드를 리팩토링하고 테스트를 작성하는 과정을 살펴보자.- 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공deeper-dev.tistory.com🌱 테스트- 자동테스트 : 테스트 코드라는 미리 짜여진 코드를 돌려서 결과값이랑 예상한 값을 비교💭 구조//given ..
🌱 들어가기 전이번 포스팅에서는 간단한 계산기 코드를 리팩토링하고 테스트를 작성하는 과정을 살펴보자.- 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글입니다. ✏️ 지난 포스팅과 이어집니다 !https://deeper-dev.tistory.com/9 [테스트 코드와 설계] 실패하는 테스트 코드🌱 들어가기 전이번 포스팅에서는 실패하는 테스트 코드에 대한 분석과 개발자로서 테스트 코드를 짤 때 가져야하는 관점에 대해 알아보자.- 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개deeper-dev.tistory.com 포스팅 내용에 대한 자세한 코드는 Github에 올려두었습니다.https://github.com/benjaminuj/test-c..
🌱 들어가기 전이번 포스팅에서는 실패하는 테스트 코드에 대한 분석과 개발자로서 테스트 코드를 짤 때 가져야하는 관점에 대해 알아보자.- 김우근님의 'Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트'를 공부하고 정리한 글입니다. ✏️🌱 테스트 코드를 넣게되는 시나리오서비스 성장세 → 인력 충원 → 개발 속도 정체기 발생 💭 왜 성장할수록 개발 속도에 정체기가 발생할까? 무엇이 문제일까? 개발자들이 배포를 두려워한다.즉, 문제는 회귀 버그를 두려워하는 것이다. 더보기🧐 회귀 버그란?💡 회귀 버그(Regression)란, 프로그램 변경 중 이전에 제대로 작동하던 소프트웨어 기능에 문제가 생기는 것이다. 💭 문제 해결 테스트를 도입한다. 💭 테스트를 도입한 후, 어떤 상황을 맞이하..
🌱 들어가기 전이번 포스팅에서는 구현의 복잡도를 줄이기 위한 요구사항 세분화, 테스트 코드 작성, 리팩토링을 알아보자. 🌱 2.1 main() 메소드를 활용한 테스트의 문제점소스코드 구현 후 정상 동작하는지 확인하는 일반적인 방법은 main() 메소드를 활용해 의도한 결과 값이 출력되는지 콘솔로 확인하는 것이다. 과정을 살펴보기 위해 간단한 사칙연산 계산기 구현 코드를 보자.public class Calculator { int add(int i, int j) { return i+j; } int subtract(int i, int j) { return i-j; } int multiply(int i, int j) { return i*j; ..
🌱 들어가기 전이번 포스팅에서는 처리율 제한 장치를 설계하는 과정에 대해 알아보자.🌱 처리율 제한 장치클라이언트가 보내는 트래픽의 처리율을 제어하기 위한 장치요청 횟수가 정의된 임계치를 넘어서면 추가로 도달한 모든 호출은 처리가 중단(block)된다.💭 API에 처리율 제한 장치를 두면 좋은 점- DoS 공격에 의한 자원 고갈 방지 - 비용 절감: 서버를 많이 두지 않아도 된다. 우선순위가 높은 API에 더 많은 자원을 할당할 수 있다. → 제 3자 API에 사용료 지불하는 회사들에게는 아주 중요하다 - 서버 과부하 방지: 봇에서 오는 트래픽이나 사용자의 잘못된 이용패턴으로 유발된 트래픽을 걸러내는데 활용할 수 있다. 🌱 1단계. 문제 이해 및 설계 범위 확정처리율 제한 장치를 구현하는 데 여러 ..
🌱 들어가기 전이번 포스팅에서는 개략적으로 규모를 추정하는 내용에 대해 알아보자.시스템 설계 면접을 볼 때, 시스템 용량이나 성능 요구사항을 개략적으로 추정해보라는 요구를 받게된다.개략적 규모 추정을 효과적으로 해 내려면 규모 확장성을 표현하는 데 필요한 기본기에 능숙해야 한다.- 2의 제곱수- 응답지연 값(latency)- 가용성에 관계된 수치들 🌱 2의 제곱수데이터 최소 단위는 1바이트, 8bit로 구성된다. ASCII 문자 하나가 차지하는 메모리 크기가 1바이트이다. 데이터 볼륨 단위를 2의 제곱수로 표현하면 어떻게되는지 알아야 한다.2의 x 제곱근사치이름축약형101천1킬로바이트1KB201백만1메가바이트1MB3010억1기가바이트1GB401조1테라바이트1TB501000조1페타바이트1PB 🌱 모든..