분류 전체보기
-
[자료구조] Queue알고리즘 2023. 4. 12. 21:21
자바(Java)에서 Queue는 데이터를 순서대로 관리하기 위한 자료구조 중 하나이다. 이 자료구조는 선입선출(FIFO, First-In-First-Out)의 원칙을 따르며, 데이터가 들어온 순서대로 처리된다. Java에서 Queue는 java.util 패키지에 속해 있으며, 다양한 구현체를 제공한다. 대표적인 Queue 구현체로는 LinkedList, ArrayDeque, PriorityQueue 등이 있다. LinkedList는 연결 리스트를 기반으로 한 Queue 구현체이다. 요소를 추가하거나 삭제할 때마다 리스트의 노드를 생성하거나 제거하기 때문에 처리 속도가 느리지만, 요소를 삽입하거나 삭제하는 작업에는 빠르게 대응할 수 있다. ArrayDeque는 배열을 기반으로 한 Queue 구현체이다. Q..
-
자바 클래스와, 객체와, 인스턴스Java 2023. 4. 11. 15:41
클래스는 객체를 생성하기 위한 설계도 또는 틀이다. 객체는 이러한 클래스를 바탕으로 생성된 구체적인 실체이다. 클래스는 객체를 만들기 위한 속성(변수)와 기능(메서드)을 정의한다. 객체는 이러한 속성과 기능을 가진 구체적인 인스턴스로서, 메모리에 할당된다. 예를 들어 Person 이라는 클래스가 존재한다. 이는 설계도 또는 틀이다. Person 클래스에는 속성(이름, 나이)과 기능(걷기, 말하기) 등을 정의한다. 이때 Person 클래스를 이용하여 kim 이라는 이름을 가진 20살 사람이며, 걷기와 말하기 등을 할 수 있는 구체적인 인스턴스를 생성할 수 있다. 즉, kim은 Person 클래스의 인스턴스인 것이다.
-
자바 기본 데이터 유형과, 래퍼 클래스Java 2023. 4. 11. 14:29
Java는 순수한 객체지향 언어가 아니다. 왜냐하면 기본 데이터 유형을 제공하기 때문이다. 하지만 기본 데이터 유형을 래퍼 클래스를 이용해 객체로 변환시킬 수 있다. 아래 코드는 그 예제이다. // int 타입의 기본 타입 값 int intValue = 10; // Integer 클래스의 인스턴스로 변환 Integer integerValue = Integer.valueOf(intValue); // Double 클래스의 인스턴스로 변환 double doubleValue = 3.14; Double doubleObject = Double.valueOf(doubleValue); 반대로 래퍼 클래스를 기본 데이터 유형으로 변환시킬 수 있다. 아래는 예제 코드이다. // Integer 클래스의 인스턴스 Intege..
-
매개변수(Parameter), 인자(Argument), 파라미터 차이카테고리 없음 2023. 4. 10. 22:21
매개변수(Parameter)와 인자(Argument)는 함수나 메서드를 호출할 때 사용되는 용어입니다. 매개변수는 함수나 메서드를 정의할 때 선언하는 변수를 의미합니다. 매개변수는 함수나 메서드가 호출될 때 함수나 메서드 내부에서 사용될 값의 타입과 이름을 미리 선언하게 됩니다. 함수나 메서드가 호출되어 실행되는 동안에는 매개변수는 해당 함수나 메서드 내에서 변수로 사용됩니다. 인자는 함수나 메서드를 호출할 때 전달하는 값들을 의미합니다. 즉, 함수나 메서드를 호출할 때 전달되는 값들을 말합니다. 인자는 호출하는 쪽에서 함수나 메서드에게 전달됩니다. 파라미터(Parameter)는 매개변수와 동일한 의미를 가집니다. 하지만 파라미터(Parameter)는 보통 함수나 메서드를 정의할 때 사용되고, 매개변수(..
-
AOP(Aspect Object Programming)Spring 2023. 4. 10. 22:07
AOP란 AOP(Aspect-Oriented Programming)는 OOP(Object-Oriented Programming)에서의 모듈성과 재사용성을 증대시키기 위한 프로그래밍 기법 중 하나입니다. AOP는 어떤 시스템에서 발생하는 여러 개의 요구사항들 중에서 핵심적인 기능이 아니라 간섭적인 부분(관심사)들을 분리시켜서 관리하는 기법입니다. AOP는 크게 측면(aspect), 조인 포인트(join point), 포인트 컷(pointcut), 어드바이스(advice), 위빙(weaving) 등의 개념으로 이루어져 있습니다. 측면(aspect) 관심사의 모듈화를 의미합니다. 예를 들어, 로깅이나 트랜잭션과 같은 공통적인 관심사를 분리하여 모듈화합니다. 조인 포인트(join point) 언제 측면이 실행될..
-
SPA(Server Page Application), SSR(Server Side Rendering)카테고리 없음 2023. 3. 22. 19:59
여태까지 나는 SSR(Server Side Rendering) 방식으로 프로젝트를 진행해 왔었다. 그래서 view 단까지 thymeleaf를 사용해서 구현해줬었는데 이번에 SPA를 사용하면서 rest 방식으로 기능을 api로 만들었는데 view 단을 직접 구현할 필요가 없고, MockMvc를 통해 test 만으로 DB에 생성, 조회, 수정, 삭제 기능 테스트, 페이징 테스트 등을 할 수 있어서 너무 편하다.
-
MockMvc의 사용 이유Spring 2023. 3. 20. 11:40
MockMVC란, 개발한 웹 프로그램을 실제 서버에 배포하지 않고도 테스트를 위한 요청을 제공하는 수단입니다. GET, POST, PATCH, DELETE 등의 요청을 만들어 보낼 수 있습니다. MockMVC를 이용한 테스트는 단위 테스트와 통합 테스트 사이의 테스트라고 합니다. - 출처 : google mockMvc 사용 이유 추천 스니펫 mockMvc를 사용하면 데이터 테스트를 훨씬 빠르게 작업할 수 있다는 장점이 있다고 생각한다. 만약 기본적인 CRUD 기능을 테스트할 때 웹 애플리케이션을 구동하고, 화면 상으로 결과를 확인하는 작업은 많은 시간이 소요되고 번거롭다. 하지만 MockMvc를 사용하면 웹 애플리케이션을 구동하지 않아도되기 때문에 번거롭지 않고 빠른 테스트가 가능하다.
-
@ResponsBodySpring 2023. 3. 18. 17:53
@ResponseBody는 ViewResolver를 요구하지 않고 원하는 데이터 반환을 json 형태로 본문에 응답해준다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public ErrorResponse inValidRequestHandler(MethodArgumentNotValidException e){ ErrorResponse response = ErrorResponse.builder() .code("400") .message("잘못된 요청입니다.") .build(); for(FieldError fieldError : e.getFieldErrors..