JAVA52 ASSERTTHAT 메서드 사용법 assertThat은 JUnit이나 AssertJ 라이브러리에서 제공하는 정적 메서드이다. 이 메서드는 주로 단위 테스트에서 결과를 검증하는 데 사용된다. assertThat을 사용하면 테스트 코드가 더 직관적이고 가독성이 좋아지며, 여러 가지 검증 방법을 손쉽게 적용할 수 있다. 1. 기본 사용법 assertThat 메서드는 주어진 값을 검증하는데 사용된다. 주로 isEqualTo, isNotEqualTo, isNull 등 다양한 매처를 사용하여 값을 비교한다. 다음은 기본적인 사용 예시이다.int discount = 0;assertThat(discount).isEqualTo(0);이 코드는 discount 값이 0과 같은지 비교하고, 만약 다르면 테스트가 실패한다. 2. 다양한 매처 사용assert.. JAVA/Spring 2024. 12. 14. 테스트 코드의 중요성과 작성 방법에 대한 심층적인 이해 테스트 코드의 중요성테스트 코드는 소프트웨어 개발에서 필수적인 역할을 한다. 코드가 의도한 대로 작동하는지 검증할 수 있는 안전망 역할을 한다. 개발 과정에서 기능을 추가하거나 기존 코드를 리팩터링할 때, 테스트 코드는 코드의 안정성을 유지하도록 돕는다. 이를 통해 예상치 못한 오류를 빠르게 발견하고 수정할 수 있다.또한 테스트 코드는 개발자의 생산성을 높이는 데 기여한다. 수동으로 기능을 테스트하는 시간과 노력을 줄일 수 있다. 특히, 큰 프로젝트에서는 기능이 서로 얽혀 있어 수동 테스트만으로는 모든 문제를 발견하기 어렵다. 테스트 코드는 이러한 문제를 자동화된 방식으로 해결해 준다.마지막으로, 테스트 코드는 개발자 간의 소통 도구로도 활용된다. 코드가 어떤 동작을 수행해야 하는지 명확하게 보여주기 때.. JAVA/Spring 2024. 12. 14. HashMap과 ConcurrentHashMap의 차이점 그리고 동시성 문제 해결 개발을 하다 보면 데이터를 저장하고 관리하기 위해 HashMap을 사용하는 경우가 많다.하지만 여러 스레드가 동시에 접근하는 환경에서는 HashMap 사용이 적합하지 않다. 이런 환경에서 동시성 문제를 해결하기 위해 ConcurrentHashMap이 등장한다. 이 글에서는 HashMap과 ConcurrentHashMap의 차이를 이해하고, 언제 어떤 것을 사용해야 하는지 알아본다. 1. HashMap의 특징과 문제점HashMap은 java.util 패키지에서 제공하는 가장 기본적인 Map 구현체이다. 빠른 데이터 삽입과 검색 속도를 제공하며, 단일 스레드 환경에서 매우 유용하다. 하지만 다중 스레드 환경에서는 문제가 발생할 수 있다.예제: 단일 스레드 환경에서 HashMap 사용import java.ut.. JAVA/Spring 2024. 12. 13. 자바에서 변수의 타입 확인하기: 기본형과 래퍼 클래스 기본형과 래퍼 클래스자바에서 변수의 타입을 확인하는 방법은 Python과 같은 동적 언어와는 다르다. Python에서는 type() 함수를 사용하여 변수의 타입을 간단히 알 수 있다. 하지만 자바는 정적 타입 언어로, 컴파일 시 변수의 타입이 이미 결정되므로 별도의 타입 확인이 필요하지 않은 경우가 많다. 하지만 디버깅이나 특정 상황에서 변수의 타입을 확인해야 할 때도 있다.특히, 자바에서 **기본형(primitive type)**과 **래퍼 클래스(wrapper class)**의 차이를 이해하고 타입을 확인하는 방법을 아는 것은 중요하다. 기본형(Primitive Type)의 타입 확인자바에서 기본형은 객체가 아니므로 getClass() 메서드를 사용할 수 없다. 그러나 기본형을 래퍼 클래스로 박싱(B.. JAVA/메서드 정리 2024. 12. 7. Java의 char 타입 연산: 문자 차이를 계산하고 타입 변환 이해하기 Java에서 char 간의 연산이 어떻게 동작하는지에 대해 알아보자. char는 문자 데이터를 저장하는 타입이지만, 내부적으로는 아스키 코드나 유니코드 값으로 표현되는 숫자 값이 있다. 예를 들어, 문자 'A'는 아스키 코드 값으로 65를 가지고, 문자 'B'는 66을 가진다. 이렇게 char는 숫자 값으로 저장되어 있어, 두 char 값을 연산할 때 그 숫자 값을 기반으로 계산이 이루어진다.char - char 연산Java에서 char 타입 간의 연산을 수행할 때는 두 문자의 아스키 코드 값을 빼는 방식으로 동작한다. 예를 들어, '1' - '0'을 계산해보면, 각각의 문자에 해당하는 아스키 코드 값은 49와 48이다. 이를 뺄셈으로 계산하면 49 - 48 = 1이 되어, 결과는 1이 된다.결과 타입은.. JAVA/메서드 정리 2024. 12. 6. woowa_precourse 커밋 메세지 형식 🙈 woowacourse 진행하면서 지켜야할 스스로의 규칙 [커밋 메세지] 👨💻 커밋 메시지 형식주제 라인형식: (): 주제 내용: 간결하게 변경 사항 설명 👉 허용된 feat (기능)fix (버그 수정)docs (문서)style (형식, 세미콜론 누락 등)refactortest (테스트 추가)chore (유지보수) 👉 허용된 커밋 변경의 위치를 명시하는 범위. 예: $location, $browser, $compile, $rootScope, 등. 👉 텍스트명령형 현재 시제 사용: “change”가 아닌 “changed” 또는 “changes”첫 글자 대문자 사용 금지마침표(.) 사용 금지 메시지 본문명령형 현재 시제 사용변경 동기 및 이전 동작과의 대비 설명Close에 이슈 번호를 지정하.. JAVA/woowacourse_precourse 2024. 10. 15. 블로그 만들기 DAY1 [스프링부트 중요개념 정리] Daily 목표: 스프링의 컨셉인 IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)의 개념을 이해해가며 블로그 코드 작성하기 keyword: IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화) 스프링부트? * 톰캣, 제티, 언더토우 같은 웹 애플리케이션 서버가 내장되어 있음. 따로 설치 하지 않아도 독립적 실행 가능함. * 빌드 구성을 단순화하는 스프링 부트 스타터를 제공함. * XML설정 없이 자바 코드 작성 가능. * JAR을 이용해 자바 옵션만으로 배포 가능함. * 애플리케이션 모니터링 관리 도구인 스프링 액츄에이터 제공 용어설명: IoC : Inversion of Contro.. JAVA/블로그 만들기 2023. 10. 7. 블로그 만들기 DAY1 [용어정리 및 SRPING 기초정리] 노트형식으로 작성됨 ↓ * JPA – 관계형 데이터베이스를 사용하는 방식의 인터페이스 JAVA는 SQL이 아닌 자바언어로 데이터베이스를 조작. * GRADLE 메이븐 차이? 소스 코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램 * GRADLE의 특징: 메이븐에비해 가독성이 좋고, 설정이 간단함. 자바,코틀린,그루비 등 다양한 언어 지원 빛 원하는대로 빌드 스크립트 작성 가능. 빌드와 테스트 속도가 메이븐에 비해 빠름 **단축키정리** 1. 복사하기 Ctrl + C 2. 잘라내기 Ctrl + X 3. 붙여넣기 Ctrl + V 4. 주석토글 Ctrl + / 5. 전체선택 Ctrl + A 6. 현재 파일에서 찾기 Ctrl + F 7. 전체 파일에서 찾기 Ctrl + Shift +.. JAVA/블로그 만들기 2023. 9. 27. Spring Security (스프링 시큐리티) Ch.1 Spring Security DAY1 CH.1 학습 목표 Spring Security가 무엇인지 알아보기. Spring Security 사용하는 용어정리 하기. Spring Security를 사용해야 하는 이유를 알 수 있다. Spring Security의 기본구조 1️⃣ Spring Security 란? Spring Security는 Spring 기반의 프레임워크에서 보안을 다루기 위한 프레임워크다. 이전에는 Spring Security가 Acegi Security로 불렸었다. Spring Security는 인증(Authentication)과 인가(Authorization) 기능을 포함하며, 웹, 서비스, 메시지 기반 애플리케이션 등 다양한 환경에서 보안을 다루기 위한 기능을 제공 하고있다. 사용하는 .. JAVA/Spring Security 2023. 3. 15. DI(Dependency Injection) 이란? / (포스팅 하나로 세부내용까지 총 정리) TIL 목표: Spring 컨테이너(Container)와 빈(Bean)의 의미를 이해할 수 있다. 빈 스코프(Bean Scope)의 의미를 이해할 수 있다. Java 기반 컨테이너(Container) 설정에 대해 이해할 수 있다. Spring DI(Dependency Injection)의 의미를 이해할 수 있다. Component 스캔에 대해 이해할 수 있다. 1️⃣ DI란? (의존성 주입) 생성자 뿐 아니라 다른 방식으로도 의존성 주입이 가능하지만, 일반적으로는 생성자를 통한 의존관계 주입을 사용한다. 2️⃣ 스프링 컨테이너 (Spring Container) 스프링 프레임워크(Spring Framework)는 자바 기반의 오픈소스 프레임워크로서, 자바 애플리케이션을 개발하기 위한 다양한 기능을 제공한다.. JAVA/Spring 2023. 3. 13. Java 기반 컨테이너 설정방법 (Spring 어노테이션 활용) 1️⃣ Java 기반 컨테이너 설정방법 (어노테이션 활용) Java 기반의 컨테이너 설정 방법 중 어노테이션을 활용한 것은 스프링 프레임워크에서 제공하는 애노테이션 기반의 설정 방법이다. 2️⃣ 스프링 프레임워크에서는 아래와 같은 어노테이션들을 제공한다. @Component: 해당 클래스를 빈으로 등록. @Repository: DAO(Data Access Object) 클래스를 빈으로 등록. @Service: 서비스 클래스를 빈으로 등록. @Controller: 컨트롤러 클래스를 빈으로 등록. @RestController: RESTful 웹 서비스를 처리하는 컨트롤러 클래스를 빈으로 등록. @Configuration: 설정 클래스를 나타내며, 빈을 등록하고 설정하는 메서드를 포함. @Bean: 해당 메서.. JAVA/Spring 2023. 3. 13. 스코프(Scope) 란? /SpringFramework 스코프(Scope) 란? 스프링 프레임워크에서 빈(Bean) 객체의 생성 및 소멸 시점과 라이프사이클을 관리하는 것 중 하나가 스코프(Scope)다. 스코프는 빈 객체의 생성 범위를 지정하며, 해당 범위에서만 빈 객체를 공유하고 관리한다. 스프링은 다양한 스코프를 제공하여 객체의 생성 및 소멸을 효율적으로 관리할 수 있도록 지원한다. 1️⃣ 스코프 종류 Singleton: 스프링 컨테이너에서 생성되는 빈 객체는 기본적으로 Singleton 스코프로 생성된다. 따라서 컨테이너 내에서 하나의 인스턴스만 생성되고, 이를 모든 빈에서 공유하여 사용한다. @Component // 기본 스코프는 Singleton public class MyComponent { } Singleton 스코프는 스프링 컨테이너에서 딱 .. JAVA/Spring 2023. 3. 13. 이전 1 2 3 4 5 다음