java 47

[Java 문법] enum(enumerated type)

enumJava에서 enum은 열거형(enumeration)을 나타내는 특별한 데이터 타입입니다.특정 값들의 집합을 정의할 때 사용하며, 각 값은 enum 타입의 상수(constant)로 표현됩니다.예를 들어, 요일을 나타내기 위해 월, 화, 수, 목, 금, 토, 일을 열거할 수 있습니다. enum을 사용하면 코드의 가독성과 안정성을 높일 수 있으며, 특정 값들만 사용해야 하는 상황에서 오류를 줄일 수 있습니다.enum을 사용하는 이유1. 코드의 간결성(1) enum 사용 Xpublic class TrafficLight { public static final TrafficLight RED = new TrafficLight("RED"); public static final TrafficLight..

ORM, JPA feat. Hibernate

ORM, JPA, Hibernate 소프트웨어 개발에서 데이터베이스는 핵심적인 역할을 합니다. 데이터를 저장하고 관리하기 위해 여러 기술들이 사용되는데, 그 중에서 자주 언급되는 것이 JPA, ORM, 그리고 Hibernate입니다. ORM1. ORM이란?ORM(Object-Relational Mapping)은 객체(Object)와 데이터베이스 테이블(Relational) 간의 매핑을 도와주는 기술입니다.간단히 말해, 프로그래밍에서 사용하는 객체(클래스)와 데이터베이스의 테이블을 서로 연결해주는 역할을 합니다.개발자는 SQL(데이터베이스 언어)을 직접 작성하지 않고, 객체 지향 방식으로 데이터베이스를 관리할 수 있습니다.2. ORM 매핑 기본 구조@Entity // 이 클래스가 데이터베이스 테이블과 매핑..

[프로그래머스 / Java] Lv.0 제곱수 판별하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/120909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krCodeclass Solution { public int solution(int n) { if(Math.sqrt(n) % 1 == 0) { return 1; } else { return 2; } }}Math.sqrt : 숫자 n의 제곱근을 계산ex. n = 16이면, Math.sqrt(16)은 4.0ex. n = 18이면, Mat..

[프로그래머스 / Java] Lv.0 문자열 안에 문자열

Question https://school.programmers.co.kr/learn/courses/30/lessons/120908 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krCodeclass Solution { public int solution(String str1, String str2) { int answer = 0; if(str1.contains(str2)) { answer = 1; } else { answer = 2; } return answe..

[Java 문법] String.valueOf() VS toString()

String.valueOf()다양한 타입의 값을 문자열로 변환하는 정적(static) 메서드입니다. 1. 기본 타입(primitive type)을 문자열로 변환int number = 10;String strNumber = String.valueOf(number);// strNumber는 "10" 이라는 문자열을 갖게 됩니다. 2. 객체를 문자열로 변환Object obj = new Object();String strObj = String.valueOf(obj);// obj의 toString() 결과를 문자열로 반환합니다.// 만약 obj가 null이면 "null" 문자열을 반환합니다. 3. boolean 값 변환boolean flag = true;String strFlag = String.valueOf(f..

[Java 문법] Class<?>

Class Java의 Class 객체를 제네릭으로 표현한 타입으로, 모든 클래스 타입을 안전하게 다룰 수 있는 방법입니다.는 제네릭의 와일드카드로, 모든 클래스 타입을 수용한다는 의미입니다.특정한 타입으로 제한하지 않고, 어떤 타입의 클래스라도 처리할 수 있도록 설계할 때 사용합니다.타입을 특정하지 않는 경우 일반적으로 Class를 사용할 수 있지만, Class를 사용하면 컴파일러가 타입을 명확하게 경고하거나 안전성을 보장합니다.Class VS ClassClass stringClass = String.class; // String 타입만 허용Class anyClass = String.class; // 모든 타입 허용// 특정 타입에 맞춘 제네릭 메서드public T getInstance(C..

[Java 문법] Optional

Optional Optional은 값이 있을 수도 있고 없을 수도 있는 상황을 다루기 위해 Java에서 제공하는 클래스입니다.null 대신 사용하는 안전한 상자라고 생각하면 됩니다. NullPointerException(널 포인터 예외) 방지null을 반환하거나 체크하는 코드를 줄이고, 더 읽기 쉽고 안전한 코드를 작성동작  값을 상자에 담습니다.상자에 값이 있으면 그 값을 사용할 수 있고,값이 없으면 빈 상자라는 걸 명확히 알 수 있습니다.상자가 비었을 때 어떻게 처리할지 미리 정해둘 수 있습니다.기본값을 사용하거나,에러를 내거나,다른 대체 행동을 지정할 수 있습니다. 예시 1. 값이 있을 때Optional name = Optional.of("John"); // 값이 있는 상자if (name.isPr..

[프로그래머스 / Java] Lv.0 점의 위치 구하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/120841 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krCode방법 1. elseif (dot[0] > 0) { if (dot[1] > 0) answer = 1; else answer = 4;} else { if (dot[1] > 0) answer = 2; else answer = 3;}1) 장점else는 if 조건이 false일 때만 실행되므로 불필요한 조건 검사를 피합니다.2) 단점로직이 복잡해지면, else만 사용했을 때 어떤 조건을 처리하고 있는지 명확하..

[Java 문법] 롬복(Lombok) @EqualsAndHashCode

@EqualsAndHashCodeLombok의 @EqualsAndHashCode를 사용하면, 객체의 필드 값을 기준으로 equals와 hashCode를 자동으로 생성할 수 있습니다. 이를 통해 isEqualTo에서 값이 동일하면 true를 반환하게 됩니다. * 예시@AllArgsConstructor@Getter@Setter@EqualsAndHashCode // equals와 hashCode 메서드 자동 생성public class WiseSaying { private int id; private String content; private String author; public WiseSaying(Map map) { this.id = (int) map.get("id"); ..