본문 바로가기

Backend53

[자바의 신] 21장 21장 - 실수를 방지하기 위한 제네릭이라는 것도 있어요 JUnit 메서드나 클래스 같은 작은 단위를 쉽게 테스트할 수 있도록 도와주는 프레임워크 DTO (Data Transfer Object) 예시 package d.generic; import java.io.Serializable; public class CastingDTO implements Serializable { private Object object; public void setObject(Object object) { this.object = object; } public Object getObject() { return object; } } private 변수, getter, setter, Serializable 구현해야 제대로 된 DTO.. 2022. 8. 9.
[자바의 신] 20장 20장 - 가장 많이 쓰이는 패키지는 자바랭 java.lang 패키지 자바 패키지 중 유일하게 java.lang 패키지에 있는 클래스들은 import 안 해도 사용 가능 자바에 꼭 필요한 기능 제공 java.lang 패키지에 정의된 중요한 에러 OutOfMemoryError (OOME) 메모리 부족으로 발생하는 에러 자바는 가상 머신에서 메모리를 관리하나, 프로그램을 잘못 작성하거나 설정이 제대로 되어있지 않은 경우에 해당 에러 발생함 StackOverFlowError 호출된 메서드의 깊이가 너무 깊을 때 발생함 자바에서는 스택(Stack)이라는 영역에서 어떤 메서드가 어떤 메서드를 호출했는지에 대한 정보를 관리함 예를 들어 메서드가 자기 자신을 호출하는 재귀 메서드를 잘못 작성하면 스택에 쌓을 수 있는.. 2022. 7. 26.
[자바의 신] 19장 19장 - 이쯤에서 자바의 역사와 JVM에 대해서 알아보자 자바의 모토 Write Once, Run Anywhere (WORA) JDK의 플랫폼에 따른 차이 Java 버전에서 제공되어야 하는 표준 문서가 만들어지면 그 기준에 해당하는 각 벤더에 맞는 JDK가 별도로 만들어짐 우분투 리눅스 OS OpenJDK가 기본적으로 설치되어 있음 WAS Web Application Server 자바에서 사용되는 용어 JDK: Java Development Kit J2SE: Java 2 Standard Edition Java SE: Java Standard Edition JDK: Java Development Kit JRE: Java Runtime Environement 자바를 실행할 수 있는 환경의 집합(실행만을 위.. 2022. 7. 26.
[자바의 신] 18장 18장 - 이제 기본 문법은 거의 다 배웠으니 정리해 봅시다 객체지향 관련 용어 목록 클래스(Class) 상태(state)와 행위(behavior) 캡슐화(Encapsulation) 메시지(Message) 객체(Object) 상속(Inheritance) Overriding 다형성(Polymorphism) Overloading 클래스(Class) 상태와 행위를 갖는 자바의 기본 단위 상태(state)와 행위(behavior) 상태 = 클래스나 인스턴스 변수 행위 = 메서드 캡슐화(Encapsulation) 연관된 상태와 행위를 결정하는 기능을 묶어주는 것 기능을 묶어주면 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉(information hiding) 가능 하나의 객체 위한 코드가 다른 객체 위한 .. 2022. 7. 26.
[자바의 신] 17장 17장 - 어노테이션이라는 것도 알아야 한다 어노테이션 정의 Annotation 클래스나 메서드 등 선언 시 @ 사용 메타 데이터(Metadata)라 부르기도 함 쓰임 컴파일러에 정보 알려줄 때 컴파일 및 설치(deployment) 시 작업 지정할 때 실행 시 별도 처리 필요할 때 자바 언어에서 사용하기 위해 정해져있는 어노테이션 @Override 해당 메서드가 부모 클래스에 있는 메서드 Override 했다는 걸 명시적 선언 @Deprecated 컴파일러에 해당 클래스나 메서드는 더 이상 사용하지 않는다는 걸 알려줌 컴파일 결과, 경고만 있음(에러 x) = 컴파일 완료 = 클래스 파일 생성됨 @SuppressWarnings 컴파일러에 해당 소스는 일부러 이렇게 코딩한 것이니 경고해줄 필요 없다고 알려줌.. 2022. 7. 25.
[자바의 신] 16장 16장 - 클래스 안에 클래스가 들어갈 수도 있구나 클래스 안의 클래스, Nested 클래스 코드 간단 표현 가능 자바 기반의 UI 처리 시 사용자 입력 및 외부 이벤트 처리하는 곳에서 많이 사용 package c.inner; public class PublicClass { } class JustNotPublicClass { } 파일 이름 : public한 클래스 이름 따서 정의해야함(컴파일 에러 방지) Nested 클래스 사용 이유 한곳에서만 사용되는 클래스를 논리적으로 묶어 처리할 때 = Static nested 클래스 사용 이유 캡슐화 필요할 때 = 내부 구현 감추고 싶을 때 = 내부(inner) 클래스 사용 이유 소스 가독성과 유지보수성 높이고 싶을 때 Static nested 클래스 내부 클래스.. 2022. 7. 25.
[Java] String ➡ Long 타입으로 형변환 방법 Long.parseLong() new Long(str).longValue() Long.valueOf(str).longValue() 예제 String str = "30"; Long strLong; //str이 유효한 숫자가 아니면 NumberFormatException 발생 //방법1 : Long.parseLong(str) strLong = Long.parseLong(str); //방법2 : new Long(str).longValue() strLong = new Long(str).longValue(); //방법3 : Long.valueOf().longValue() strLong = Long.valueOf(str).longValue(); 주의점 입력된 String 값이 유효한 숫자가 아니면 Number.. 2022. 3. 30.
[Java] 정수 최대값, 최소값 구하기 정수 최대값, 최소값 최대값 최소값 231-1 (2,147,483,647) -231 (-2,147,483,648) Integer 클래스 int의 Wrapper 클래스인 Integer 클래스 통해 정수의 최대값, 최소값 구할 수 있음 static int Integer.MAX_VALUE static int Integer.MIN_VALUE 예제 public class IntegerMaxMin { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); //2147483647 System.out.println(Integer.MIN_VALUE); //-2147483648 } } 출처 : https://hianna.tistory... 2022. 3. 28.
[Gradle] 버전 확인 / 업그레이드 Gradle 버전 확인(IntelliJ 기준) Gradle 정보 위치 gradle/wrapper/gradle-wrapper.properties 1. gradle-wrapper.properties distributionUrl 속성값에서 현재 적용된 Gradle 버전 확인 가능 2. .\gradlew 명령어 모듈 내에 존재하는 gradlew Alt + F12: Console 창 열기 Console에 .\gradlew -v 명령어 입력( = gradlew에 접근) .\gradlew -v Gradle 버전 업그레이드/다운그레이드 Alt + F12: Console 창 열기 Console에 .\gradlew wrapper --gradle-version 원하는버전 입력 .\gradlew wrapper --gradle.. 2022. 3. 25.