분류 전체보기

    JUnit5 - Java에서의 단위테스트2 - 테스트 반복

    반복해서 테스트를 하고 싶을 때 다음과 같이 사용할 수 있다. @RepeatedTest 반복 횟수와 반복 테스트 이름을 설정할 수 있다. @RepeatedTest(value, name ) 옵션들 {displayName} {currentRepetition} {totalRepetitions} RepetitionInfo 타입의 인자를 받을 수 있다. @RepeatedTest(10) void repeatTest(RepetitionInfo repetitionInfo) { System.out.println("반복 테스트 " + repetitionInfo.getCurrentRepetition() + " \n" + // 현재 반복 횟수 repetitionInfo.getTotalRepetitions()); // 총 반복..

    JUnit5 - Java에서의 단위테스트 1

    Java의 단위 테스트(Unit Test) 테스트 코드를 작성하는 이유 개발 단계에서 테스트 코드를 작성하는 이유는 정말 다양하다. 개발 과정에서 미리 문제를 발견할 수 있다. 코드에 잠재되어있떤 문제를 발견하는데 큰 도움이 된다. 리팩토링의 리스크가 줄어든다. 서비스 업데이트를 하거나 요구사항이 변경되면 코드가 추거되거나 수정되는데, 그 코드에 연관된 다른 코드에 까지 영향을 준다. 코드를 수정하는 과정에서의 버그들이나 잘못된 점을 빠르게 잡을 수 있다. 애플리케이션을 가동해서 직접 테스트하는 것보다 테스트를 빠르게 진행할 수 있다. 테스트 코드를 공유함으로써 이 테스트와 이 기능이 무엇을 하는지 알 수 있다. 하나의 명세 문서로서의 기능을 수행한다 몇 가지 프레임워크에 맞춰 테스트 코드를 작성하면 좋..

    단위테스트, 통합테스트, 인수테스트의 개념

    테스트(Test) 소프트웨어 테스트는 다양한 테스트 들이 있다. 화이트박스 테스트, 블랙박스 테스트, 단위테스트, 통합테스트, 시스템 테스트, 인수 테스트 등 TDD(Test Driven Development) 를 공부하기 전, 단위테스트, 통합테스트, 인수테스트에 대해 개념을 정리하려 한다. 단위테스트(Unit Test) 단위테스트는 응용 프로그램에서 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 테스트가 가능한 가장 작은 소프트웨어나 기능을 실행하여 예상대로 동작하는지 확인하는 테스트이다. 단위 테스트에서 테스트 대상 단위의 크기는 엄격하게 정해져 있지 않다. 하지만 일반적으로 클래스 또는 메서드 수준으로 정해진다. 단위의 크기가 작을수록 단위의 복잡성이 낮아진다. 여기서 ..

    캐시(Cache), 브라우저 캐시, Spring Boot Cache

    [10분 테코톡] 큰곰 & 소니의 캐시를 보며 정리한 내용입니다. 캐시(CACHE) 목차 메모리 계층 구조 캐시 Redis 간략 설명 [브라우저 캐시](##브라우저 캐시?) Spring Boot Cache 메모리 계층 구조 계층이 높아질수록 속도가 빠르지만 용량은 적다. 반대로 계층이 낮아질수록 속도는 느리지만 용량은 많다. 데이터를 저장하는 공간의 속도와 용량은 반비례 관계 속도가 빠른 메모리일수록 용량이 작음 - RAM이 SSD나 HDD보다 용량이 작지만 속도가 빠름 용량이 큰 저장장치는 속도가 느림 - RAM 보다 SSD나 HDD가 용량이 크지만 속도가 느림 둘 다 잡기에는 비용이 너무 많이 든다 그래서 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어서 사용한다. 데이터 저장 공간..

    Spring vs Spring boot

    Spring Spring boot의 차이 10분 테코톡 - Spring vs Spring boot 10분 테코톡 - Spring vs Spring boot 어노테이션(Annotation) 주석 이라는 뜻 어노테이션은 기능을 가지고 있지 않다. 어노테이션은 마킹이다. 마킹된 어노테이션을 처리해주는 프로세서가 있다. Spring boot 에서의 어노테이션 처리 // 어노테이션 선언 @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLASS) public @interface WoowaAnnotation { } // 어노테이션 어떤 체리를 해줄지 작성 @Component @Aspect public class AnnotationAspect { @Around("@A..

    클린 아키텍처 1부.

    클린아키텍처를 스터디하면서 책의 내용, 토론한 내용, 개인 생각을 정리한 글입니다. 1부 1장, 2장 1부 1부 1장 설계와 아키텍쳐란 프로그램이 동작하도록 만드는 데 엄청난 수준의 지식과 기술이 필요하지는 않다. 누구든지 할 수 있는일이다. 동작은 한다. 프래그램을 동작하게 만들기는 그리 어려운일이 아니기 때문이다. 하지만 프로그램을 동작하게만 하는 수준이 아닌, 제대로 만드는 일은 전혀 다르다. 소프트웨어를 제대로 만들게 되면 마법과 같은 일이 벌어진다. 소수의 프로그래머 만으로 유지보수와 지속적으로 동작할 수 있도록 만들 수 있다. 설계와 아키텍처의 차이란? 둘 사이에는 차이가 없다. '아키텍처'는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬때 사용된다 '설계'..

    MVC 패턴 , 5 Layer 패턴

    유튜브 우아한 Tech 채널에서 10분 테코톡을 듣고 공부한 내용입니다. 목차 MVC 패턴이란, Model, View, Controller Service Layer MVC를 지키면서 코딩하는 방법 5 Layer References MVC 패턴이란 * 출처 : 위키피디아 MVC 패턴 Model & View & Controller로 애플리케이션을 3가지 역할로 구분한 개발 방법론 MVC 패턴이 나오기 이전의 웹 어플리케이션의 아키텍쳐 모델 1 아키텍처 출처 구성 : JSP + JavaBean(Service) 한 페이지가 뷰 + 로직으로 이루어져 있다. - 뷰와 로직이 섞인다. 장점 : 개발이 쉽고 구조가 간단하다. 단점 : 코드가 복잡해져서 유지보수가 상당히 까다롭다. 프론트와 백엔드의 분업이 힘들다. 모델..

    4주차 - 제어문

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 4주차 - 제어문 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 제어문 제어문이란 주어진 조건에 따라 코드 블록을 실행하거나 반복실행 할 때 사용한다. 일반적으로 코드는 위에서 아래로 순차적으로 실행된다. 제어문은 코드의 실행순서를 인위적으로 제어할 수 있다. 선택문 제어문 중 if, if ~ else, switch문 입니다. if문 문법 : if (condition) {코드 실행 블록} condition은 조건식이나 조건문. 변수나 조건식 메서드가 들어갈 수 있습니다. 조건이 참(true)이면 코드 블록을 실행, 거짓(false) 라면 코드 블록을 실행하지 않습니다. 실행 블록 내의 코드가 한 줄인 경우 중괄호를 생..

    [자료구조] 해시, 해시테이블

    해시(Hash) 해시란? 해시(Hash) 함수, 또는 해시 알고리즘은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑, 변환 해주는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드 등인데 간단하게 해시라고한다. 즉 해시(hash)란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값이다 해시 함수?(Hash Function) 데이터를 효율적으로 관리하기 위해, 임의의 길이의 데이터를 수학적 연산을 통해 고정된 길이의 데이터로 매핑하는 함수이다. 임의의 길이를 갖는 메시지를 입력받아 고정된 길이의 해시값을 출력하는 함수입니다. 암호 알고리즘에는 키가 사용되지만, 해시 함수는 키를 사용하지 않으므로 같은 입력에 대해서는 항상 같은 출력이 나오게 됩니다. 해..

    DTO vs VO 그리고 Entity

    우아한 테크코스 유튜브의 10분 테코톡을 듣고 공부하며 간단 정리한 글입니다. 10분 테코톡 - 지노 & 비모의 DTO vs VO & 인비의 DTO vs VO 목차 DTO VO 공통점과 차이점 ENTITY DTO vs VO vs ENTITY DTO DTO란 Data Trasfer Object의 약자로, 계층간 데이터를 전달하기 위해 사용하는 객체 - 데이터 전달용이다 계층 - Layer getter, setter 메서드 외에 특별한 기능을 가지지 않는다. 정렬, 직렬화 등 데이터 표현을 위한 기능은 가질 수 있다. 데이터의 캡슐화를 통해 유연한 대응이 가능하다 데이터 요청 수 감소 효과 각기 다른 API 요청대신, DTO에 데이터를 묶어 보내서 요청 수 감소 효과를 기대할 수 있다. setter가 아닌 ..