[Java] 테스트 코드 개념 정리하기 2
·
JAVA/Java 실습
2025.12.01 - [JAVA/Java 실습] - [Java] 테스트 코드 개념 정리하기 를 통해 테스트 코드의 필요성과 개념에 대해 정리했었다. 오늘은 그에 이어 두번째 특강 내용을 기반으로 테스트 코드에 대한 깊이있는 이해를 가져가보고자 한다. 오늘 정리하고자 하는 개념은 아래와 같다.비동기 통신 (WebSocket) 검증 방법 학습CI 환경에서 자동으로 테스트가 실행되도록 구축1. WebSocket 테스트 환경 설정웹소켓 테스트에서는 @SpringBootTest 어노테이션을 필요로 한다.@SpringBootTest(webEnvironment = RANDOM_PORT) 가 필요한가?WebSocket은 실제 서버-클라이언트 연결이 필요RANDOM_PORT로 실제 내장 서버를 띄워서 테스트포트 충돌 ..
[Java] 테스트 코드 개념 정리하기
·
JAVA/Java 실습
시작하며...항상 프로젝트와 과제를 수행함에 있어서 테스트 코드 작성에 익숙하지 않고, 어떻게 접근해야 하는지에 대한 궁금증만 가지고 교육과정을 진행하고 있었다. 오늘은 테스트코드의 필요성과 개념, 그리고 앞으로 프로젝트와 과제를 진행함에 있어서 꾸준히 활용해야 할 내용에 대해서 정리해보고자 한다. 테스트코드란?: 작성한 코드를 실행했을 때 에러가 나거나, 의도한 대로 동작하지 않는 경우를 방어하기 위한 검증의 과정이라고 할 수 있다. 테스트 코드를 작성해야 하는 핵심적인 이유안정성 확보 (Stability)새로운 기능을 추가하거나 기존 코드를 수정할 때, 기존 기능이 망가지지 않았는지(Regression) 즉시 확인할 수 있음수정으로 인한 추가적인 에러나 예외발생에 대한 두려움을 없앨 수 있음.빠른 피..
[자바 알고리즘] 프로그래머스 두 개 뽑아서 더하기
·
JAVA/Java 실습
Self Check :반복문 개념을 통해 새로운 배열값 저장을 할 수 있는가? 🙋‍♂️ 문제 분석 (문제 원문 : 두개 뽑아서 더하기)정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.⚠️ 제약사항numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다.📂 입출력 예시#inputnumbers [2, 1, 3, 4, 1][5, 0, 2, 7] #outputresult[2, 3, 4, 5, 6, 7][2, 5, 7, 9 , 12]🧐 문제 풀이 접근 방법해당 문제를 접근하며 생각이 들었던 것은 각..
[JAVA] 다형성 파헤쳐보기
·
JAVA
이전에 객체지향의 4가지 특성에 대해 정리해본적이 있다. 그 중에서도 다형성에 대해서 다시 한번 정리할 필요에 따라 글을 적어 가보고자 한다. 💡 왜 만들어졌는가?기존에 알고있던 구현방식을 동물의 소리를 출력하는 과정을 예시로 들어 보자면 public class AnimalManager { public static void main(String[] args) { Dog dog = new Dog("바둑이"); Cat cat = new Cat("나비"); Bird bird = new Bird("짹이"); // 각각 따로따로 처리해야 함 dog.makeSound(); cat.makeSound(); bird.mak..
[JAVA] 불변객체(Immutable Object)
·
JAVA
기초 개념불변객체란 무엇인가?개념 정의불변객체(Immutable Object)는 한 번 생성되면 내부 상태가 절대 변하지 않는 객체를 말함개체가 만들어진 이후에는 속성값을 바꾸거나 수정할 수 없음 반대의 의미로는 Mutable Object(가변 객체)가 있으며 생성된 이후에도 내부 상태를 변경할 수 있는 객체를 말함예를 들어 ArrayList 같은 클래스는 데이터를 추가하거나 수정할 수 있으므로 mutable한 객체 record기존 클래스를 Record로 변환하기(JAVA 14+)전통적인 불변 클래스 → Record 변환변환 전public final class Product { private final String id; private final String name; private fi..
[JAVA] 예외처리
·
JAVA
Error와 Exception: Java에서는 컴파일 오류, 런타임 오류 두 종류가 있고, 컴파일 오류는 미리 잡아내기 쉽지만 런타임 오류는 해결하기 까다로움런타임 오류는 Error와 Exception 이 있음 Exception, Error의 계층구조 ThrowablegetMessage(), printStackTrace()와 같은 메서드가 구현되어 있음Exception, Error에 대한 Message를 기록Chain 된 예외들의 정보를 기록Error코드로 복구되지 않는 오류개발자가 직접 Error를 catch하면 안되며 해결할 수 없음Ex) OOM(OutOfMemory Error) - 실행중 메모리 부족Exception개발자가 직접 처리할 수 있는 오류ex) NPE(NullPointerException..