목록분류 전체보기 (78)
우당탕탕 개발자 되기
final 제어자 자바에서는 final 제어자는 더이상 변경할 수 없다라는 의미로 사용 즉 필드나 지역 변수에 사용하면 값을 변경할 수 없는 상수 클래스에 사용하면 해당 클래스는 다른 클래스가 상속 받을 수 없다. 메소드에 사용하면 해당 메소드는 오버라이딩을 통한 재정의 할수 없다. fianl 제어자를 사용할 수 있는 대상 - 클래스, 메소드, 필드, 지역 변수 static 제어자 선언된 변수는 변수가 선언된 클래스의 모든 인스턴스가 공유하는 변수 변수에 사용하면 해당 변수를 클래스 변수로 만들어 준다. 메소드에 사용하면 해당 메소드를 클래스 메소드로 만들어 준다. 1. 프로그램 시작 시 최초에 단 한번만 생성되고 초기화한다. 2. 인스턴스를 생성하지 않고도 바로 사용가능하다. 3. 해당 클래스의 모든 ..
제어자란? 클래스와 클래스 멤버의 선언 시 사용 부가적인 의미를 부여하는 키워드 접근 제어자 private, public, default, protected 클래스 정의 대상 제어자 public, default public : 위치에 상관없이 어디든 해당 클래스의 인스턴스를 생성 가능 default : 동일 패키지로 묶인 클래스내에서만 인스턴스 생성을 허용 인스턴스 멤버 대상 제어자 public > protected > default > private private 접근 제어자 클래스 멤버는 외부에 공개 되지 않으며, 외부에서는 직접 접근할 수 없다. -> 자바 프로그램은 private 멤버에 직접 접근할 수 없으며, 해당 객체의 public 메소드를 통해서만 접근 할 수 있다. private 멤버는 p..
FieldError, ObjectError 의 생성자 : errorCode, arguments를 제공하는데 오류 발생시 오류 코드로 메시지를 찾기위해 사용 error.properties 파일 생성 - 오류 메시지를 구분하기 쉽게 파일로 관리 -> 스프링 부트에 파일을 인식할 수 있도록 설정 필요 application.properties 에 추가 spring.messages.basename=messages,errors V1 메시지 처리 전 bindingResult.addError(new FieldError("item", "itemName", item.getItemName(), false, null, null, "상품 이름은 필수입니다.")); 메시지 처리 후 bindingResult.addError(new..
상품 정보 입력 검증 검증 직접 처리 - 검증 오류 보관 더보기 Map errors = new HashMap(); //오류 발생시 어떤 검증에서 오류가 발생했는지 정보를 담아둔다. 어떤 필드에서 오류가 발생 했는지 구분하기 위해 오류가 발생한 필드명을 key 로 사용 -> 검증 오류 발생 시 입력 폼을 다시 보여준다. -> 검증 오류들을 고객에게 친절하게 안내해서 다시 입력할수 있게 한다. -> 검증 오류가 발생해도 고객이 입력한 데이터가 유지 BindingResultV1 BindingResult bindingResult 파라미터를 추가 해준다 FieldError 생성자 요약 public FieldError(String objectName,String field, String defaultMessage)..
입력 폼 처리 - th:object : 커맨드 객체를 지정 - *{...} : 선택 변수 식, th:object 에서 선택한 객체에 접근 - th:field : HTML 태그의 id,name,value 속성을 자동으로 처리해준다. HTML 의 id 가 타임리프에 동적으로 만들어지기 때문에 으로 label 의 대상이 되는 id 값을 임의의 지정하는 것은 곤란하지만, 타임리프에서는 ids.prev(...), ids.next(...) 을 제공해서 동적 생성 id 값을 사용할 수 있다. 메세지 message.properties : 메세지 관리용 파일을 만들어 하드코딩을 피할 수 있다. LocaleResolver 변경 Locale 선택 방식을 변경하려면 LocaleResolver 의 구현체를 변경해서 쿠키나 세션..
https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 로또에 일치한 번호의 갯수로 최고 순위와 최저 순위를 알아내는 방법으로 0은 어떠한 수도 될수 있기 때문에 일치한 번호의 수가 최저 순위가 되고, 0의 갯수를 더한 수의 순위가 최고 순위가 되는 것을 생각한다면 빠르게 풀수 있는 문제이다. import java.util.*; class Solution { public..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr import java.util.*; class Solution { public static class user implements Comparable{ int x; double y; public user(int x, double y) { this.x = x; this.y = y; } @Override public int compareTo(user o) { if ..
웹 페이지 개발 시 공통 영역이 많이 있기 때문에 그러한 부분을 편리하게 해결하기 위해 템플릿 조각과 레이아웃 기능을 제공 th:fragment : 태그가 다른곳에 포함되는 코드조각으로 이해 부분 포함 insert -> 사용 시 현재 태그 내부에 추가된다. 부분 포함 replace -> 사용 시 현재 태그를 대체한다 파라미터 사용 -> 이런 방법으로 파라미터를 전달해 동적으로 조각을 렌더링 할 수 있다. 템플릿 레이아웃 : 공통으로 사용하는 css,javascript 같은 정보들을 한 곳에 모아두고 각 페이지마다 필요한 정보를 더추가해서 사용할수 있다. 전체에 적용할수도 있다. 출처) https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/d..