스웨거는 기본적으로컴파일 단계에서 모든 속성값이 결정된다.String.format 같은 문자열 메서드는런타임 시점에 값이 동적으로 평가되기에스웨거에서 String.format 같은 메서드는 사용이 불가능하다. examples 에..examples = @ExampleObject(value = "{\n" + " \"errorCode\": \"CART_PRODUCT_NOT_FOUND\",\n" + " \"message\": \"장바구니에 상품을 추가하지 못했습니다.\"\n" + "}"))이런식으로 더러운 문자열을 넣어야한다.물론 자바 15 ( 정시출시가 15임 )에서는""" """ 같은삼중 따옴표를 사용하여 문자열을 쉽게 정의할 수 있다.보통 11 이후에 17을 사용하니 17에서는 쉽게 문자열 정의가 가능하다..
package org.example.알고리즘.PCCP기출문제2번; import java.util.*; class Solution { private static final int[] DX = {0, 0, -1, 1}; private static final int[] DY = {1, -1, 0, 0}; public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.solution(new int[][]{{0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0}, {1, 1, 0, 0, 0, 1, 1, 0}, {1, 1, 1, 0, 0, 0, 0, 0}, ..
상속 가능성 변경자기본 상태와 final 변경자클래스와 메서드가 기본적으로 상속이 불가능한 final 상태이다.클래스의 상속을 제한하기 위한 방법임.상속의 허용은 클래스나 메서드에 open 변경자를 붙여줘야한다open class RichButton : Clickable { fun disable(){} // 이 함수는 final입니다. 하위 클래스가 이 메서드를 오버라이드할 수 없습니다. open fun animate() {} // 이 함수는 open입니다. 하위 클래스에서 이 메서드를 오버라이드할 수 있습니다. override fun click() {} // 이 함수는 상위 클래스에서 선언된 open 메서드를 오버라이드합니다. 오버라이드한 메서드는 기본적으로 open입니다. }override 와 fina..
기본적인 가시성 변경자와 접근의 제어가시성 변경자는 클래스 외부에서의 접근을 제어한다.클래스의 구현에 대한 접근을 제한함.외부 코드가 클래스 내부 구현에 의존하지 않음.public, protected, private 변경자가 존재하며,기본은 public아무런 변경자가 없으면 기본 선언은 공개자바의 기본 가시성 패키지 전용은 코틀린에 존재하지 않음패키지를 네임스페이스 위한 용도로만 사용패키지에 가시성 제어 적용 X코틀린의 internal 가시성 변경자패키지 전용 가시성에 대한 대안코틀린은 internal 가시성 변경자 도입internal모듈 내부에서만 볼 수 있다의 의미이다. 모듈은 한 번에 한꺼번에 컴파일되는 코틀린 파일들을 의미이클립스 인텔리제이 메이븐 등의 프로젝트가 모듈이 될 수 있다.모듈 내부 가..
자바의 내부 클래스자바의 클래스 내부에서 다른 클래스를 정의하면기본적으로 내부 클래스가 된다.내부클래스는 외부 클래스에 대한 인스턴스 참조를 자동으로 가지게 된다.코틀린에서의 내부 클래스외부 클래스와 내부 클래스는 서로 접근 권한이 없다코드의 캡슐화나 정의를 사용하는 곳에 가깝게 두는 것에 유용한 편이다.중첩 클래스의 사용 예제View 인터페이스와 State 인터페이스를 예로View 의 상태를 직렬화하는 경우에 중첩 클래스를 사용하면 편리하다.Button 클래스의 상태를 저장하는 클래스는 Button 클래스의 내부에 선언하면 편리하다.State 인터페이스를 구현한 ButtonState 클래스를 정의하여 Button에 대한 구체적인 정보를 저장한다.class Button : View { override f..
스웨거에서 왜 안뜨는 DTO 가 있는건지 의문이 들었다.찾아보니스웨거에서의 DTO 에 표시되는 케이스는 컨트롤러에서 반환되거나 파라미터로 사용되는 외부에 공개되는 DTO 의 경우에만 표시된다고 한다.스웨거에서의 DTO 표기법 @Schema(description = "장바구니에 담긴 상품 수량을 변경하기 위한 요청 DTO") public class CartProductUpdateRequestDTO { @NonNull @Schema(description = "장바구니 ID", example = "1", required = true) Long cartId; @NonNull @Schema(description = "상품 ID", example = "1", required = true) Long productId..