본문 바로가기
반응형

Backend/Java30

[Java]DTO는 항상 만들어야 할까? 답은 Yes라고 생각한다.요청(Request), 응답(Response) 모두 DTO를 만들어주면 좋다. 실무에서 API를 설계할 때 요청과 응답 각각에 DTO를 안 쓰면 컨트롤러에서 엔티티를 직접 노출하거나 받아야 하는데, 이건 보안, 유지보수, 확장성 면에서 매우 불리하다. 즉, 계층 분리, 보안, 유지보수, 유연성 모두를 위한 기본 설계 원칙이기 때문에 사실상 필수나 다름 없다. 특히 Form 데이터 다룰 때는 100% 써야한다.@ModelAttribute나 @RequestParam으로 폼 데이터를 받는 경우, 필드를 하나씩 받기보다는 DTO로 묶어서 받는 게 훨씬 명확하고 유지보수하기 좋다. 게다가 필드가 많아질수록 코드가 복잡해지는데, DTO를 쓰면 검증도 쉽게 걸 수 있어서 정말 좋다. 이유는 .. 2025. 4. 9.
[Java]StringBuilder 클래스 사용법💪 ✅ StringBuilder란?: Java에서 문자열을 효율적으로 조작할 수 있도록 제공되는 클래스String은 불변(immutable) 특성 때문에 문자열을 반복적으로 수정하면 매번 새로운 객체가 생성되어 성능이 떨어질 수 있다. 이를 보완하기 위해 StringBuilder는 내부 버퍼(buffer) 를 이용하여 문자열을 변경할 수 있게 해준다.  📊 *버퍼(buffer) 참고버퍼는 간단히 말해 임시 저장 공간이다. StringBuilder는 문자열을 붙일 때마다 새로운 객체를 만들지 않고, 내부 버퍼에 계속 내용을 추가하면서 수정할 수 있음.String (불변)"H" + "e" → "He" (새 객체) + "l" → "Hel" (새 객체) + "l" → "Hell" (새 객체) + .. 2025. 4. 9.
[Java] 클래스 파일 -> 자바 파일로 디컴파일 하는 법(jad decomplier 사용) 서버에 올려놨던 class 파일을 들여다 봐야 할 경우가 있다. 그러나 클래스 파일 (.class 파일)은 자바 소스 코드가 컴파일된 바이트코드로, 자바 가상 머신(JVM)이 실행할 수 있는 형식이라 사람이나 컴퓨터가 바로 읽을 수 있는 일반 텍스트 파일이 아니다. 즉, 소스를 보고 싶으면 사람이 읽을 수 있는 텍스트 파일인 자바 파일(.java 파일)을 텍스트 편집기나 IDE(통합 개발 환경)에서 열어야 한다.  java 파일을 class 파일로 변환하는 것을 컴파일이라고 하니,class 파일을 java 파일로 변환하는 것은 디컴파일이 된다.  ⭐⭐⭐⭐⭐⭐디컴파일 하는 법⭐⭐⭐⭐⭐⭐ 1. 먼저 아래 주소로 가서 JAD 디컴파일러를 설치하고, 다운로드 받은 압축파일을 푼다. https://varaneck.. 2024. 9. 24.
[Java]split() 메서드 2024 2회차 정보처리기사 실기 시험 20번 문제에 나온 Java split 메서드 !  주어진 기준값으로 문자열을 분할하는건 알겠는데..주어진 기준값은 문자열 배열에 들어가게 되는건지 아닌지 헷갈려서 결국 그 문제는 틀렸다 🤪그랬는데 시험 다 보고 나니까 실무 중에 쓸 일이 있어서 다시 보는 김에 정리해본다.  👨‍💻split() 메서드란?자바의 String 클래스에 포함된 메서드로, 문자열을 특정 구분자(Delimiter)나 정규 표현식을 기준으로 분할하여 배열로 반환해주는 메서드public String[] split(String regex)public String[] split(String regex, int limit) regex에는 분할의 기준이 될 문자 또는 정규표현식을 넣어준다.lim.. 2024. 9. 11.
[Java]중첩 클래스(Nested Class) 🤔중첩 클래스(Nested Class) : 클래스(Outer Class) 내부에 선언된 클래스(Inner Class) => 두개의 클래스가 밀접한 관계에 있는 경우 사용 - 이벤트 처리 프로그램 작성 => 클래스의 캡슐화를 강화할 목적으로 중첩 클래스 선언 ⚫객체 내부클래스(Instance InnerClass) => 객체 내부클래스는 컴파일 되면 [외부클래스$내부클래스.class] 파일로 생성 => 외부클래스에 종속되어 사용되는 내부클래스 예시 코드1👩‍💻 ▶️OuterOne이라는 외부 클래스 안에 InnerOne이라는 내부클래스 선언1️⃣InnerOne(내부클래스)에서 OuterOne(외부클래스)의 필드/메소드 직접 참조하여 사용 가능(모든 접근제한자 가능)2️⃣반대로 OuterOne(외부클래스)에서 .. 2024. 2. 24.
[Java] throws와 throw의 차이 ⚫throws문은 메소드 시그니처에서 예외를 선언하여 메소드를 호출하는 쪽으로 예외를 전달하는 역할 ⚫throw문은 메소드 내에서 예외를 직접 발생시키는 역할을 합니다. 코드예시👩‍💻 //생략 public void addUserinfo(UserinfoDTO userinfo) throws SQLException, ExistsUserinfoException { if(UserinfoModelTwoDAO.getDAO().selectUserinfo(userinfo.getUserid())!=null) { //사용자 예외 클래스로 객체를 생성하여 throw 키워드로 인위적 예외 발생 throw new ExistsUserinfoException("이미 사용중인 아이디를 입력하였습니다."); } UserinfoModel.. 2024. 2. 23.
반응형