| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- vue
- 예제
- 로그인
- Redis
- Cluster
- redash
- java
- 자동
- 머신러닝
- Zeppelin
- SpringBoot
- aws
- 젠킨스
- 레디스
- 클러스터
- gradle
- EMR
- 간단
- spring
- hive
- ec2
- fastcampus
- Docker
- Jenkins
- 자바
- 설정
- login
- config
- Mac
- Kafka
- Today
- Total
목록분류 전체보기 (201)
코알못
저번 시간에 이어서 테스트 코드 품질을 개선하는 방법에 대해서 알아보자!이번 시간에는 아래 방법에 대해서 예시를 통해 하나씩 보도록 한다.TestRestTemplate.postForObjectTestRestTemplate.exchangeAssertJ.isCloseTo@DirtiesContextTestFixtureTestDSL우리는 TestRestTemplate.postForEntity 를 이전 시간에 사용했다.그러나 우리가 응답의 헤더나 상태코드가 필요 없고 응답 데이터만 필요할 때가 있다.그럴때 사용할 수 있는 메서드는 postForObject 이다!아래와 같이 예제 코드를 작성해보자.Users users = Users.builder() .name("코린이") ...
실무에서 테스트 코드를 작성하다 보면 반복 되는 코드가 많거나 가독성이 떨어지는 경우가 많다.이런 테스트 코드의 품질을 높이기 위한 방법이 있다!아래 방법을 통해 개선 작업을 진행해보자!1) assertThat().satisfies()satisfies 를 사용하면 아래와 같은 경우 사용 가능하다.해당 여러 검증 코드를 하나로 묶을 때자유롭게 검증 코드를 작성하기 위해예시를 통해 알아보자!우선 간단한 회원 가입 로직을 만들어보자!간단한 API 를 만들기 위해 필요한 라이브러리는 아래와 같다.dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframewor..
TDD 를 예시를 통해 알아보자 !우리는 회원관리 시스템을 만든다고 하자! 그 중 유저 생성 API 로 TDD 를 수행해보자!1) 테스트 시나리오 작성- 유저 생성 API 호출하여 정상 처리시 상태 코드 200을 리턴한다.- 유저 생성 API 호출시 이름, ID, 패스워드 정보를 전달 받으며 이 중 하나라도 없다면 상태 코드 400을 리턴한다.- 이름 파라미터는 세자리이며 맞지 않을 경우 상태코드 400을 리턴한다.- ID 파라미터는 영어로만 이뤄지며 맞지 않을 경우 상태코드 400을 리턴한다.- 패스워드 파라미터는 영문자 숫자로 이뤄지며 최소 4자리 이상이여야 하며 맞지 않을 경우 상태코드 400을 리턴한다.2) API 설계 문서화요청 정보메서드 : POST경로 : /user헤더 : Content-Ty..
테스트 주도 개발(TDD) 개념부터 실무 활용까지 알아보자!개발을 하다 보면 “테스트는 나중에 하지 뭐…”라고 생각하는 경우가 많다고 한다.하지만 안정적인 서비스를 만들기 위해서는 테스트가 매우 중요하다.이때 등장하는 개념이 바로 TDD(Test-Driven Development) 다!지금부터 하나씩 알아보자!TDD(Test-Driven Development)란?TDD는 테스트 시나리오대로 코드를 먼저 작성한 뒤,그 테스트를 통과시키기 위해 코드를 만들고,이후 리팩토링을 통해 계속해서 개선하는 개발 방법이라고 한다.이 개념은 켄트 벡이 정립한 개발 방법론으로 알려져 있다고 한다.TDD의 3단계 TDD는 크게 3단계로 반복된다!간단하게 설명하면 아래와 같다!Red → 실패하는 테스트 작성Green → 최소..
🌱 재귀함수에 대해서 알아보자!재귀함수란, 자기 자신을 다시 호출하는 함수를 말한다.말 그대로, 함수가 자기 자신을 반복적으로 부르는 구조라고 할 수 있다!재귀를 사용하면 코드를 간결하게 표현할 수 있고,특히 반복적인 구조나 문제를 잘게 쪼개는 상황에서 유용하게 쓰인다.📌 재귀함수는 언제 고려해야할까?재귀함수는 다음과 같은 상황에서 고려해볼 수 있다반복적인 계산 구조일 때탐색 범위를 계속 줄여야 할 때🚨 재귀함수의 핵심: 탈출 조건!재귀함수를 사용할 때 가장 중요한 건 탈출 조건이다!자기 자신을 계속 부르다 보면 무한 루프에 빠질 수 있기 때문에,어디선가 반드시 멈춰야 한다.이걸 탈출 조건이라고 한다.팩토리얼 예제로 재귀를 이해해보자!팩토리얼은 1부터 N까지의 정수를 모두 곱한 값을 말한다.3!이..
탐색에 대해서 알아보자!데이터 속에서 원하는 값을 찾는 대표적인 방법에는순차 탐색(Sequential search)과 이진 탐색(Binary search)이라는 방식이 있다.이 둘은 어떤 차이가 있을까? 그리고 이진 탐색은 왜 더 빠르다고 할까?지금부터 함께 알아보자!순차 탐색(Sequential search)이란?순차 탐색은 말 그대로 데이터를 앞에서부터 하나씩 차례대로 확인해보는 방법이다.리스트의 첫 번째 인덱스부터 시작해서,찾고자 하는 값이 나올 때까지 계속 다음 값을 확인해나간다.👉 즉, 모든 데이터를 순서대로 검사하는 방식이라고 할 수 있다!✅ 시간 복잡도는?O(N)데이터가 100개 있다면, 최악의 경우 100번을 다 확인해야 한다.데이터가 많아질수록 시간이 오래 걸리게 된다.이진 탐색(Bin..
시간/공간 복잡도란?시간 복잡도는 알고리즘이 실행되는데 걸리는 시간/사용되는 공간을 수학적으로 표현한 개념입니다. 입력 크기 N이 커질수록 얼마나 많은 연산이 수행되는지를 알려주기 때문에, 알고리즘의 성능 비교에 유용 합니다.시간 복잡도 계산법📌 예제 코드로 살펴보기아래 코드는 리스트 안에서 가장 큰 숫자를 찾는 간단한 함수입니다:def find_max_num(array): for number in array: is_max_num = True for compare_number in array: if number 이 코드를 기준으로, 각 부분이 얼마나 많은 연산을 수행하는지 분석해보겠습니다.🔍 안쪽의 is_max_num = False 까지 걸리는 시간..
Maven, Tomcat, IntelliJ 설정 및 활용법1. Maven package와 install의 차이공통점두 명령어 모두 소스 코드를 컴파일하고 JAR 파일을 생성한다.차이점mvn package : 프로젝트를 빌드하고, 타겟 디렉토리에 .jar 또는 .war 파일을 생성한다.mvn install : package 단계까지 수행한 후, 생성된 JAR/WAR 파일을 로컬 저장소(~/.m2/repository)에 저장한다.2. Maven과 Gradle의 로컬 저장소 경로Maven: ~/.m2/repositoryGradle: ~/.gradle/cachesMaven과 Gradle은 의존성을 다운로드할 때, 먼저 로컬 저장소에서 찾고, 없을 경우 원격 저장소에서 가져온다.3. Tomcat을 여러 개 띄우는..
