Java 8

@WebMvcTest를 사용한 REST 컨트롤러 테스트

@WebMvcTest:스프링 MVC 컨트롤러가 의도한 대로 작동하는지 테스트 가능(실제 서버 환경이 아닌) 모의 웹 환경에서 스프링 애플리케이션 콘텍스트를 로드하고 스프링 MVC 인프라를 설정하며 @RestController 및 @RestControllerAdvice와 같은 MVC 계층에서 사용되는 빈만 포함  웹 MVC 슬라이스에 대한 통합 테스트🔹 웹 MVC 슬라이스(Web MVC Slice)란?Spring Boot의 @WebMvcTest를 사용하면 웹 계층(Web Layer)만 테스트할 수 있는 "슬라이스 테스트"를 수행할 수 있습니다. 📌 "슬라이스(Slice)"란?전체 애플리케이션을 테스트하지 않고 특정 계층만 테스트하는 방식@WebMvcTest를 사용하면 Spring MVC(Web) 계층만..

[OVERVIEW] IOC(Inversion of Control)

기술면접때 의존성 역전(IoC)에 대해 설명해달라는 질문을 받았는데 대답을 못했었다. 근데 대답을 못하는 내가 좀 당황스러웠음. 이런 기초적인 것도 설명을 못한다고...? 스스로 너무 어이가 없었음. 암튼 그래서 정리.IoC란?Inversion of Control (IoC)는 객체의 생성과 제어를 개발자가 직접 하지 않고, 객체의 생성과 의존성 관리 책임을 외부로 넘겨, 코드의 결합도를 낮추고 유연성을 높이는 소프트웨어 설계 원칙이다. 객체지향 프로그래밍을 지향하는 프로그램에서 객체는 다른 객체와 협력하여 동작한다. 가령, 클래스A가 클래스B의 기능을 필요로 하면, A는 B를 생성하여 사용한다. 그러나 이 과정에서 A가 B에 의존을 하게되어 결합도가 높아진다. Spring 같은 많은 프레임워크는 A가 직..

카테고리 없음 2024.10.25

[TOOL] Debugging on Eclipse

기술면접에서 추가적으로 받았던 질문 중에 개발툴에서 디버깅을 자주 사용하는지, 사용한다면 어떤 식으로 사용하는지에 대한 질문이 있었는데, 사실 그렇게 어려운 로직을 짜는 것도 아니고 보통의 오류들은 작성 단계나, 컴파일 단계에서 걸러지고 있어서 로깅 외에는 일할 때 잘 안씀. 그러다보니 기억이 정말 안나는 거 같아서 정리하려고 함. 브레이크포인트 설정브레이크포인트(Breakpoint)는 프로그램이 실행 중일 때 멈추는 지점코드의 왼쪽 마진(라인 번호가 있는 곳)을 더블 클릭하거나, 해당 라인에 커서를 놓고 Ctrl + Shift + B를 누르면 브레이크포인트가 설정됨.Breakpoint 뷰에서 전체 브레이크포인트를 한눈에 확인 가능.디버그 모드 실행브레이크포인트를 설정한 후, Run 메뉴에서 Debug ..

JAVA/JAVACORE 2024.10.20

[OVERVIEW] OOP

Technical Interview 에서 받았던 질문 中 1OOP(객체지향 프로그래밍)에 대해 설명해주세요. Object-Oriented Programming  객체지향 프로그래밍은 프로그램을 객체라는 독립적인 단위로 나누어 설계하는 방법이다. 객체는 데이터를 포함하고, 그 데이터를 처리하는 메서드를 함께 가지고 있다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있다.  OOP의 주요 특징 1. 캡슐화 Encapsulation 객체 내부의 데이터를 외부에서 직접 접근하지 못하도록 하고, 메서드를 통해 접근하도록 하는 방식이다. 자바에서는 private 키워드를 사용해 필드를 숨기고, getter와 setter로 접근하는 것이 예시이다. 2. 상속 Inheritance 기존 클래스의 속성과 메서드를..

JAVA/JAVACORE 2024.10.16

[COMPARISON] State / Behavior in Object

Technical Interview 에서 받았던 질문 中 1Object에서의 State / Behavior 를 비교해 설명해주세요. 객체(Object)란?객체는 현실 세계의 사물과 유사하게, 데이터와 기능을 하나로 묶어놓은 프로그래밍 요소이다. 자바 같은 객체지향 언어에서 모든 객체는 특정 클래스(Class)의 인스턴스로, 해당 클래스는 객체의 특성(속성)과 할 수 있는 행동을 정의한다. 상태(State)란?객체의 상태는 객체가 갖는 데이터나 속성을 의미한다. 객체의 상태는 시간이 지남에 따라 변할 수 있으며, 이 상태는 객체의 변수에 저장된다. 상태는 객체가 특정 시점에서 가지고 있는 모든 정보를 포함한다. 예를 들어, Car 객체가 있다면, 그 객체의 상태는 "현재 속도", "연료량", "차 색상" ..

JAVA/JAVACORE 2024.10.03

[COMPARISON] Object / Class

Technical Interview 에서 받았던 질문 中 1Object와 Class 를 비교해 설명해주세요.1. 정의Class (클래스): 클래스는 객체의 설계도 또는 템플릿이다. 클래스는 객체가 가질 속성(data)과 행동(method)을 정의한다. 즉, 객체가 어떻게 생기고 어떤 동작을 할 수 있는지를 규정하는 청사진이다. 예를 들어, "Car" 클래스는 모든 자동차가 가져야 할 공통 속성(예: 색상, 모델)과 행동(예: 가속, 정지)을 정의한다.Object (객체): 객체는 클래스의 인스턴스이다. 클래스라는 설계도를 바탕으로 만들어진 실제 사용 가능한 실체다. 객체는 클래스에서 정의된 속성과 행동을 실제 값으로 채운 존재로, 예를 들어, "Car" 클래스에서 만든 "myCar" 객체는 빨간색이고 현..

JAVA/JAVACORE 2024.10.03

[COMPARISON] Java Core / Java EE / Java Spring / Java Spring Boot

FPT kor technical interview 에서 받았던 질문 中 1Java Core / Java EE / Java Spring / Java Spring Boot 를 비교해주세요.Java Core (자바 코어)자바 프로그래밍 언어의 기본으로, 자바 프로그램을 작성할 때 필수적인 기본 라이브러리와 기능들이 포함.주요 특징:컬렉션, I/O, 스레드 처리, 예외 처리 등 기본 API 포함.객체 지향 프로그래밍(OOP) 개념(상속, 다형성, 캡슐화) 구현.사용 사례: 데스크톱 애플리케이션, 커맨드라인 도구 및 일반적인 프로그램 작성에 사용.Java EE (Enterprise Edition, 자바 EE)자바 코어를 확장하여 엔터프라이즈급 애플리케이션을 구축하기 위한 명세. 대규모 분산 시스템을 위한 기능을 ..

JAVA/FRAMEWORK 2024.10.02

Intro.

트위터 개발자스럽다(@gaeraecom) 도서 증정 이벤트 당첨되서 받은 『클라우드 네이티브 스프링 인 액션』.학기중이라 미루고, 야구시즌이라 미루다 보니 이제야 열어보게 되었다. 지은이는 덴마크의 소프트웨어 엔지니어인 토마스 비탈레이고, 미국에서 백엔드 테크리드로 일하고 계신 차건희씨가 옮겼다. 개인적으로 앞에 차건희씨의 머리말이 맘에 든다. 최근 몇 년 사이에 클라우드, 도커, 쿠버네티스, 데브옵스, CI/CD, 파이프라인 등에 대한 관심과 수요가 많이 늘었는데, 보안이 중요한 금융에서 쭉 개발을 해오다보니 이런 기술을 접할 일이 없었다. 그러나 구인구직 사이트만 들어가봐도 이제는 이러한 기술에 대한 지식이나 경험이 없으면 지원할 수 있는 회사의 수가 몇 안될 정도로 관심이 뜨겁다. 회사에서 안쓴다고..