Java 24

[문자열] 팰린드롬 문제

문제 1https://leetcode.com/problems/valid-palindrome/description/1) 문제 요약문자열 s가 주어졌을 때,모든 대문자를 소문자로 변환하고영숫자(알파벳과 숫자) 이외의 모든 문자를 제거한 뒤그 결과가 앞에서 읽든 뒤에서 읽든 동일하다면 true, 그렇지 않으면 false를 반환하는 문제2) 해결 주어진 문자열을 모두 소문자와 영숫자로 변환한 뒤,문자열의 맨 앞과 맨뒤를 비교하고, 한칸씩 이동하며 비교하는 방식 사용class Solution { public boolean isPalindrome(String s) { String cleanInput = s.toLowerCase().replaceAll("[^a-z0-9]", ""); ..

[Java] 예외(Exception)

1. 체크드 예외(Checked Exception)컴파일 시점에 반드시 처리해야 하는 예외try-catch문이나 throws 키워드로 반드시 예외를 처리해야 함IOException예외 타입설명FileNotFoundException파일에 접근하려고 하는데 파일을 찾지 못했을 때 발생2. 언체크드 예외(Unchecked Exception)실행 중에 발생할 수 있는 예외로 개발자가 선택적으로 처리RuntimeException의 하위 클래스로 컴파일 시점에 예외 처리를 강제하지 않음RuntimeException예외 타입 설명ArrayIndexOutOfBoundsException배열의 범위를 넘어선 인덱스를 참조할 때 발생하는 에러ArithmeticException절수를 0으로 나눌 때 발생하는 에러NullPoi..

네이버 API 사용하기

참고 자료네이버 오픈 API 가이드검색 > 뉴스 - Search API검색 > 블로그 - Search API 네이버 오픈 API 종류로그인 방식 오픈 API네이버 로그인카페캘린더비로그인 방식 오픈 API데이터랩검색 ← 사용할 API, 뉴스 검색 결과를 가져옴일일허용량이 정해져 있으니 안되면 확인해 볼 것이미지 캡쳐음성 캡차네이버 공유하기네이버 오픈메인Clova Face Recognition사전 준비 사항사전 준비사항 가이드: https://developers.naver.com/docs/common/openapiguide/appregister.md네이버 개발자 센터에서 애플리케이션을 등록하고 클라이언트 아이디와 클라이언트 시크릿을 발급받기비로그인 방식 오픈 API 호출 예import java.io.Buff..

[자바 기초] 변수와 기본 자료형

변수지역 변수(Local Variable)중괄호 내에서 선언된 변수지역 변수를 선언한 중괄호 내에서만 유효매개 변수(Parameters)메소드에 넘겨주는 변수메소드가 호출될 때 생명이 시작되고, 메서드가 끝나면 소멸인스턴스 변수(Instance Variable)메소드 밖에, 클래스 안에 선언된 변수, 앞에는 static이라는 예약어가 없어야 함객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸클래스 변수(Class Variable)인스턴스 변수처럼 메소드 밖에 클래스 안에 선언된 변수 중에서 타입 선언 앞에 static이라는 예약어가 있는 변수클래스가 처음 호출될 때 생명이 시작되고, 자바 프로그램이 끝날 때 소멸자료형(자바의 타입)기본 자료형정수형: byte, shor..

[자바 기초] 객체(Object)

1. 클래스와 객체의 차이점을 말해 주세요.내 답: 클래스의 복제본이 객체이다. 클래스는 껍데기로 이걸 사용하기 위해서는 객체를 선언해야 한다.클래스를 통해서 객체를 생성할 수 있다. 즉, 하나의 클래스를 만들면 그 클래스의 모습을 갖는 여러 객체들을 생성 할 수 있다. 그러므로, 일반적인 경우 클래스의 메소드나 변수들을 사용하려면 객체를 생성하여 사용하여야 한다.2. 객체를 생성하기 위해서 꼭 사용해야 하는 예약어는 뭐라고 했죠?내 답: newnew 키워드를 사용하여 클래스의 객체를 생성한다.3. 객체를 생성하기 위해서 사용하는 메소드 같이 생긴 클래스 이름에 소괄호가 있는 것을 뭐라고 하나요?내 답: 생성자생성자(Constructor)를 통하여 클래스의 객체를 생성한다.4. 객체의 메소드를 사용하려면..

[자바 기초] 클래스와 메서드

클래스란?내 답: 상태와 행위로 구성된 자바의 가장 작은 단위정답: 클래스는 각각의 객체들을 나타내는 청사진(blueprint)와 같다. 즉,하나의 객체를 나타내기 위한 자바에서 가장 작은 단위로 볼 수 있으며, 상태와 행동을 갖고 있는 것을 의미한다.메소드란?내 답: 클래스의 행위 담당으로, input이 있으면 output을 뱉어냄정답: 메소드는 클래스의 "행동"을 제공하는 역할을 수행한다.메소드의 매개변수의 위치?내 답: 메서드명(매개변수타입 매개변수명)정답: 메소드의 매개변수는 메소드 선언시 사용하는 소괄호 안에 타입과 변수명 순으로 선언한다. 두 개 이상의 매개변수가 있을 경우에는 콤마로 구분한다.메소드 이름 앞에 꼭 적어 줘야 하는 것?내 답: 리턴타입정답: 메소드 이름 앞에는 반드시 리턴 타입..

Wrapper 클래스: 기본형 타입과 객체 타입의 차이

1. Wrapper 클래스란?Java에는 기본형(Primitive type)과 그것을 감싸는 래퍼 클래스(Wrapper class)가 짝을 이뤄 존재기본형Wrapper 클래스intIntegerlongLongdoubleDoublebooleanBoolean……목적기본형은 객체가 아님 -> 컬렉션(List, Map 등)에 못 들어감null을 가질 수 없음 -> DB 결과, Optional 등에서 불편그래서 객체로 감싸는 래퍼 클래스 필요2. 박싱(Boxing)과 언박싱(Unboxing)개념설명예시박싱기본형 -> 래퍼 클래스 객체로 변환Integer obj = 10; Integer언박싱래퍼 클래스 -> 기본형으로 변환int num = obj; int자동 박싱/언박싱Java가 자동으로 변환해주는 기능Java ..

Objects.equals(): NPE 방지

기능Objects.equals(a, b): 두 객체 a, b를 null-safe하게 비교내부 구현:return (a == b) || (a != null && a.equals(b));a와 b가 같은 객체(주소가 같은 경우)-> true 반환a가 null이 아니고, a.equals(b)를 호출할 수 있는 경우-> a.equals(b) 결과 반환a가 null이고 b도 null인 경우-> true 반환 (둘 다 null은 동등한 상태)a가 null이고 b는 null이 아닌 경우-> false 반환NPE (NullPointerException) 방지a.equals(b) 호출 시 a가 null이면 NPE 발생Object.equals(a, b)는 NPE 절대 발생 X -> 비교적 안정적WHEN?두 값이 같거나 다름을..

[MapStruct] Default 메서드 활용한 커스텀 매핑 전략

📚 MapStruct 시리즈기본 사용법Default 메서드 활용한 커스텀 매핑 전략 @MappingTarget: 기존 객체 수정 매핑개념자동 매핑이 어려운 로직이나 직접 커스텀 매핑이 필요한 경우 사용직접 생성자 호출이 필요한 경우두 개 이상의 매개변수를 조합해서 하나의 객체를 만들 경우MapStruct가 default 메서드도 Spring Bean으로 등록사용법@Mapper(componentModel = "spring")public interface UserStatusMapper { // 자동 매핑 (MapStruct가 처리) UserStatusDto toDto(UserStatus userStatus); // 수동 매핑 (직접 로직 작성, default 메서드) default U..

[자바의 정석] 2. 변수(Variable)

1. 화면에 글자 출력 - print(), println()System.out.print()를 사용하여 화면에 글자를 출력한다.System.out.print(3+5) // 8System.out.print("3+5") // 3+5() 안에 숫자를 넣으면 계산된 결과가 출력되고, 큰따옴표 안에 넣은 내용은 글자로 간주되어 계산되지 않고 그대로 출력된다.print() VS println() System.out.print() : 괄호 안의 내용을 출력, 줄 바꿈 XSystem.out.println() : 괄호 안의 내용을 출력, 줄 바꿈 O2. 덧셈 뺄셈 계산System.out.println(5+3) // 8System.out.println(5-3) // 2System.out.println..

728x90