Java/CS 3

테스트코드 개념/ 종류/ 장점/ 주의사항/ TDD

테스트 코드란?테스트 코드(Test Code)는 개발한 소프트웨어가 예상대로 동작하는지 자동으로 검증하는 코드입니다.일반적으로 단위 테스트(Unit Test), 통합 테스트(Integration Test), 기능 테스트 (Functional Test, End-to-End Test, E2E)등의 형태로 작성됩니다.1. 단위 테스트 (Unit Test)✔️ 정의:프로그램의 개별 단위(함수, 메서드, 클래스)가 정상적으로 동작하는지 검증하는 테스트보통 Mock 객체를 활용하여 다른 의존성을 제거하고 해당 단위만 테스트✔️ 특징:빠르고 독립적 (테스트 실행 속도가 빠름)데이터베이스, 네트워크 같은 외부 의존성 없이 실행 (Mocking 활용)버그를 조기에 발견할 수 있음자바에서는 JUnit 프레임워크를 통해 단..

Java/CS 2025.03.20

동시성(Concurrency) vs. 병렬성(Parallelism) 차이 / 스레드풀

동시성과 병렬성의 차이를 쉽게 설명하면동시성은 여러 작업을 "동시에 하는 것처럼" 보이게 처리하는 기술 (시간을 쪼개서 작업 전환)을 말하고 병렬성은 여러 작업을 "진짜로 동시에" 실행하는 기술 (하드웨어적으로 다중 처리)를 말한다.  동시성(Concurrency) vs. 병렬성(Parallelism) 차이 개념 동시성 (Concurrency)병렬성 (Parallelism)정의여러 작업(Task)이 논리적으로 동시에 실행됨여러 작업(Task)이 물리적으로 동시에 실행됨실행 방식하나의 CPU 코어에서 여러 작업을 빠르게 전환(Switching)하면서 실행여러 CPU 코어나 스레드를 사용하여 작업을 동시에 처리예시하나의 사람이 전화받으면서 이메일을 읽는 것 (번갈아 가면서 수행)여러 사람이 각각 전화를 받는..

Java/CS 2025.02.24

객체 지향 언어/ 객체 지향 프로그래밍(OOP)

객체 지향 언어 / 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)현실 세계의 사물과 개념을 프로그래밍에서 객체로 표현하며 객체를 중심으로 프로그램을 설계하고 구현하는 방식을 말합니다. 객체현실 세계의 사물이나 개념을 소프트웨어 세계에서 표현한 것을 말합니다.ex)  "자동차"라는 객체에는 속성(색상, 속도)과 행동(가속, 브레이크)이 있음. 클래스객체 지향 관점에서 보는 클래스는, 객체를 만들기 위한 설계도 같은 것이라고 비유할 수 있습니다. ex) "자동차 클래스"로부터 다양한 자동차 객체를 생성할 수 있음 4가지 주요 원칙1. 캡슐화(Encapsulation) 객체의 데이터와 이를 조작하는 메서드를 하나로 묶고, 외부에서 직접 접근하지 못하도록 보호하는 것을 의미..

Java/CS 2025.02.01