본문 바로가기

전체 글57

DTO는 Java Record로 만들자 DTO란?DTO(Data Transfer Object) : 데이터를 이동시키는 데 사용되는 간단한 Java 클래스(객체)사용처는 프론트 ↔ 백엔드, 백엔드 내부 계층(Controller ↔ Service) 등 다양하다.보통은 복잡한 동작이나 비즈니스 로직은 없고, 데이터를 담는 역할만 한다.public class AvatarUploadRequestDto { private String fileName; private String fileType; private Long fileSize; public AvatarUploadRequestDto() {} public AvatarUploadRequestDto(String fileName, String fileType, Long fileS.. 2026. 10. 14.
[Full Stack Development with Spring Boot 3 and React] 1. 환경 설정 이 글은 Full Stack Development with Spring Boot 3 and React(2023)을 기반으로 작성되었으며, 책의 핵심 내용, 직접 실습하며 겪은 문제와 해결 과정을 더해 정리했다.기술 요구 사항JDK (버전 17이상) : Eclipse와 Spring Boot 3를 사용하기 위해 필수적임.Windows OS (하지만, 모든 툴은 Linux와 macOS에서도 잘 돌아간다.)Eclipse 설치Eclipse는 오픈 소스 프로그래밍 IDE이다.Eclipse Downloads | The Eclipse Foundation에서 다운을 받자.무조건 [Eclipse IDE for Enterprise Java and Web Developers]를 클릭해야 된다. Eclipse는 여러 다른 퍼.. 2026. 10. 14.
URI에 기본키(ID) 대신 publicID를 노출시키자. 기본키를 노출시키면 생기는 문제점API를 구축할 때 개발자들이 흔히 하는 설계 선택 중 하나는 데이터베이스 기본키를 직접 노출하는 것이다.하지만 이런 설계는 여러가지 문제를 일으킬 수 있다. GET /users/1GET /users/2GET /orders/13 1. 예측 가능한 ID는 공격 대상이 된다 예를 들어, 아래와 같이 API를 호출했다고 가정하자. GET /users/1GET /users/2GET /users/3 이렇게 되면, 사용자 입장에서 'GET /users/3으로 호출 가능하니까 GET /users/4로도 호출이 되겠네?'라고 유추할 수 있다. 즉, users/1~10000까지 차례로 요청을 보내서 권한 검사가 없다면 바로 개인정보가 유출될 수도 있는 것이다. 2. 사업 정보를 유출할.. 2026. 10. 14.
[Java] 3. 제어문과 메서드 ※ 이 글은 쉽게 배우는 자바 프로그래밍(2017) 내용을 기반으로 작성했습니다. 일부 내용은 생략되었습니다. 제어문 일반적으로 프로그램의 실행문은 순차적으로 수행한다. 하지만 항상 순차적으로만 실행하면 문제가 발생한다. 예를 들어, 어떤 변수에 10을 1000번을 더해야 한다면, 실행문을 1000번 적어야 한다. 또 순차적 실행은 선택 개념이 없어서 특정 상황엔 다른 선택을 할 수가 없다.그래서 프로그래밍 언어는 제어문을 사용해 실행문을 비순차적으로 수행할 수 있게 한다.제어문 : 실행문의 수행 순서를 변경하는 문장조건문 : 조건식의 결과에 따라 여러 실행 경로 중 하나를 선택하는 문장 (if, switch)반복문 : 조건에 따라 같은 처리를 반복하는 문장 (for, while, do~while)분기.. 2026. 6. 24.
[Java] 2. 자바 프로그램 구조와 기초 문법 익히기 ※ 이 글은 쉽게 배우는 자바 프로그래밍(2017) 내용을 기반으로 작성했습니다. 일부 내용은 생략되었습니다. 자바 프로그램의 기본 구조 클래스 : 프로그램을 개발하는 단위적어도 하나의 클래스가 있어야 한다.클래스 이름은 대문자로 시작해야 하며, 클래스 내부엔 여러 메서드가 포함될 수 있다.메서드 : 수행할 작업을 나열한 코드의 모임자바 애플리케이션은 main() 메서드로 실행을 시작하므로 main() 메서드를 포함하는 클래스가 반드시 존재해야 한다.실행문 : 작업을 지시하는 코드1장 Hello.java 파일에서 넣은 System.out.println(”안녕!”);이 실행문이다.주석문 : 프로그램에 덧붙이는 설명문행 주석 : //범위 주석 : /* …… */식별자 식별자는 변수, 메서드, 클래스, 상.. 2026. 6. 17.
[Java] 1. 자바 시작하기 이 글은 쉽게 배우는 자바 프로그래밍(2017)을 기반으로 작성했습니다. 앞으로도 이 책을 참고할 예정입니다.프로그래밍 언어란? 인간은 자연어를 이해하지만, 컴퓨터는 0과 1만 이해할 수 있다. 따라서 컴퓨터에 작업을 지시하려면 컴퓨터와 인간 사이를 연결시키는 매개체인 프로그래밍 언어가 필요하다.프로그래밍 언어 : 컴퓨터에 작업을 지시하기 위해 컴퓨터와 인간 사이를 연결하는 매개체저급 언어 : 컴퓨터가 이해할 수 있지만, 인간에게는 지루하고 복잡함. (기계어, 어셈블리어)고급 언어 : 저급 언어보다 인간이 이해하기 쉽게 만들어진 언어, 프로그래밍 언어는 보통 고급 언어를 뜻한다. (C, C++, Java, Python 등)고급 언어로 작성된 소스 코드는 컴퓨터에서 바로 실행할 수 없으므로, 컴파일러라는 .. 2026. 6. 16.