네트워크 기초
·
Network
서버 서비스를 제공하는 프로그램 클라이언트 서비스를 받는 프로그램. 네트워크 데이터를 필요로 하는 모든 애플리케이션 해당 IP 번호 컴퓨터  식별번호. 0~255 사이의 정수, xxx.xxx.xxx.xxx 포트 번호 같은 컴퓨터의 프로그램들 식별 번호. 0~65535 사이의 정수    package inetaddress;import java.net.InetAddress;import java.net.UnknownHostException;public class InetAddressExample { public static void main(String[] args) { try { InetAddress local= InetAddress.getLocalHost(); ..
@DateTimeFormat(pattern = "yyyy-MM-dd")
·
Programming/Spring
@DateTimeFormat이 없으면 에러가 발생한다. it seems to be a conversion problem between String to java.util.Date. Post의 LocalDate이 String으로 들어오는 localDate을 LocalDate으로 변환하지 못하면서 에러가 나는 것이다. @DataTimeFormat을 사용하면 해결 가능하다. @DateTimeFormat은 Spring에서 지원하는 어노테이션으로 LocalDate와 LocalDateTime와 같은 날짜 관련 타입의 직렬화를 지원하는 어노테이션이다.
어노테이션
·
Programming/Spring
스프링이 제공하는 대부분의 어노테이션 특징은 런타임 시, 컴파일러에게 특정 기능을 실행하도록 정보 제공을 한다. 어노테이션 파일 정의 1. 적용 대상 2. 정보유지 되는 대상 3. 어노테이션 이름 스프링에서 초기화 설정 1. xml 이용해서 외부파일에 설정 정보 넣는다. 2. 코드 파일에 설정 정보를 넣는다. 설정 정보= 어노테이션
JAVA 25(3) 어노테이션
·
Programming/Java
어노테이션의 장점 어노테이션= 컴파일러에게 메시지를 전달하는 것 컴파일에 영향은 X 1. 컴파일러에게 코드 에러 체크할 수 있도록 정보 제공 2. 개발툴이 빌드나 배치 시 코드 자동 생성할 수 있도록 정보 제공 3. 런타임 시, 특정 기능을 실행하도록 정보 제공 @Override 오버라이딩할 메소드를 위 처럼 실수로 잘못 작성했다면 오버로딩 된다. 하지만 실수이므로 누군가 알려줘야 한다. 어노테이션 @Override을 명시하면, 컴파일러가 확인 후 에러 메시지를 출력해 준다. @Deprecated 더 이상 사용하지 않으나, 하위 호완성을 위해서 제공함을 의미 구현하거나 호출됐으면, 컴파일러가 @Deprecated 확인하고 메시지를 통해 알려 준다. @SupressWarnings= 경고를 꺼! 위의 예제에..
JAVA 22(2) 제네릭 2
·
Programming/Java
와일드카드 제네릭 클래스의 객체를 메소드의 매개변수로 받을 때, 그 객체의 타입 변수를 제한하는 것을 말한다. public static void peekBox(Box box){ System.out.printIn(box); } public static void peekBox(Box box){ System.out.printIn(box); } //와일드카드는 제네렉 메소드가 아니다. //작동 원리가 다를 뿐, 기능은 같다. 와일드카드 코드가 더 간결해 보인다. 문서에서도 제네릭 메소드보다 와일드카드를 권고한다.
JAVA 22(1) 제네릭 2
·
Programming/Java
제네릭 클래스와 상속 제네릭 클래스는 상속이 가능하다. 단, 타입 인자가 같아야 한다. 위의 예제에서 타입 인자가 Integer로 통일되면 상속이 가능하지만 서로 다른 타입 인자를 가지고 있으면 상속이 불가능하다. 타겟 타입(=참조변수의 형) T에 전달되는 자료형을 결정 짓기 위한 자료형의 정보 제네릭 메소드와 일반 메소드의 차이 T가 다르면 전달이 불가능
JAVA 21(3) 제네릭 1
·
Programming/Java
타입 인자 제한의 효과  타입 인자를 인터페이스로 제한 타입 인자를 클래스와 인터페이스로 제한타입 인자는 클래스를 상속하고 인터페이스를 구현해야 한다. 제네릭 메소드 정의클래스 전부가 아닌 하나의 메소드 대해 제네릭 정의제네릭 메소드에서 T는 메소드가 호출될 때 결정된다. 원래 는 클래스에 있었다. 하나의 메소드를 대상으로 제네릭 선언하기 위해서 클래스에서 메소드로 내려왔다고 생각하면 이해하기 편하다. 상속도 마찬가지다.
JAVA 21(2) 제네릭 1
·
Programming/Java
제네릭 기반 클래스 정의 인스턴스 생성 시 T를 결정한다. 컴파일러는 를 확인하고 제네릭 기반 클래스를 구분한다. - 타입 매개변수(get)=T - 타입 인자(give)=Apple - 매개변수화 타입(인자를 전달 받아서 새로 만들어진 타입)= Box 위의 코드는 프로그래머의 실수가 컴파일 단계에서 발견됐다. 코드의 안정성을 높여준다. 다중 매개변수 기반 제네릭 클래스 정의 타입 매개변수 이름 규칙 일반적인 관례 - 한 문자로 이름을 짓는다. - 대문자로 이름을 짓는다. 보편적인 선택 - E: Element - K: Key - N: Number - T: Type - V: Value 타입 인자로 기본 자료형이 올 수 없다. 하지만 오토 박싱/언박싱으로 해결 가능하다. 다이아몬드 기호 참조 변수 선언을 통해 ..
JAVA 21 (1) 제네릭 1
·
Programming/Java
제네릭의 이해 신발을 만드는 공장을 가정해보자. 신발을 만들기 위한 틀이 있을 것이고 색을 달리해서 다양한 신발을 만들 수 있을 것이다. 여기서 틀이 제네릭과 같은 개념이고, 색은 자료형과 같다. 제네릭 이란? 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 제니릭 이전의 코드 class Apple{ public String toString(){ return "I'm an apple"; } } class Orange{ public String toString(){ return "I'm an orange"; } } class Box{ private Object obj; public void set(Object o){ obj=o; } public Object get(Object o){ retur..
JAVA 20(3) Arrays 클래스
·
Programming/Java
Arrays 클래스의 메소드 1. copyOf/ copyRange 2. equals 3. sort 4. binarySearch copyOf 메소드 copyOf와 arraycopy의 차이 Arrays.copyOf 가 요소를 복사할 뿐만 아니라 새 배열도 생성한다는 것입니다. System.arraycopy 는 기존 배열로 복사합니다(주의! 기존 배열이 미리 선언되어야 한다). copyOf arraycopy equals 메소드 두 배열의 내용을 비교한다. 요소가 기본 자료형이면 따로 오버 라이딩할 필요 없다. 주의! Arrays.equals는 참조값을 비교하는 게 아니다. 배열의 각 요소를 비교한다. 배열의 요소가 기본 자료형이 아닌 인스턴스라면? Object.equals를 오버 라이딩한다. 참고! 배열의 각..