DTO가 언제 Entity로❓처음 제 생각은 DB 에 들어가기 전에 3번(Repository) 이후Entity로 변했을 것이라고 생각했습니다. 그러나, Spring Boot 애플리케이션에서 Service 계층에서 연산 로직을 수행한 후 2번(Service) 이후에 변환해야 합니다.Repository 직전에 DTO(Data Transfer Object)를 Entity로 변환하는 것이 좋은 이유는 다음과 같습니다: 책임 분리 (Separation of Concerns):Service 계층은 비즈니스 로직을 처리하는 곳이며, Repository 계층은 데이터 접근을 담당합니다. DTO는 외부와의 데이터 교환을 담당하고, Entity는 데이터베이스와의 상호작용을 담당합니다. 따라서, Service 계층에서 ..
BackEnd
로그레벨이란? ⬇️ 각 로그 메시지의 중요도나 심각성을 나타내는데 사용됩니다. 종류TRACE: 가장 상세한 로그 레벨로, 애플리케이션의 실행 흐름을 따라가는 데 사용됩니다. 일반적으로 디버깅 목적으로 사용됩니다.DEBUG: 디버깅 정보를 제공하는데 사용됩니다. 애플리케이션 실행 중에 정보를 추적하고 문제를 해결하는 데 도움이 됩니다.INFO: 애플리케이션의 주요 이벤트나 실행 상태를 나타내는데 사용됩니다. 일반적으로 애플리케이션의 일반적인 실행 정보를 기록하는 데 사용됩니다.WARN: 잠재적인 문제가 발생할 수 있는 상황을 나타내는데 사용됩니다. 문제는 아직 발생하지 않았지만 발생할 수 있는 가능성이 있습니다.ERROR: 심각한 문제나 예외 상황을 나타내는데 사용됩니다. 애플리케이션의 실행 중에 발..
Gradle이란?Gradle은 JVM 기반 프로젝트를 위한 빌드 자동화 도구입니다. Gradle은 Groovy 또는 Kotlin DSL을 사용하여 프로젝트의 빌드 스크립트를 작성할 수 있습니다. IntelliJ IDEA에서 Gradle을 사용하면 프로젝트의 의존성 관리, 빌드, 테스트, 패키징 등을 손쉽게 관리할 수 있습니다. 다양한 빌드 옵션과 유연성을 제공합니다. IntelliJ IDEA와의 통합은 개발 작업을 더 편리하게 만들어 줍니다. 버전에 맞는 적절한 Gradle-JVM 을 설치한 후 적용해 줍니다! Gradle Keyword🔑plugins: 빌드 스크립트에서 사용할 Gradle 플러그인을 지정합니다. 예를 들어, Java 또는 Kotlin 플러그인을 추가하여 Java 또는 Kotl..
들어가며페어프로그래밍 중 스프린트를 느껴보는 경험을 했습니다. 간단한 알고리즘인 자바 선 정렬을 팀원과 함께 5분씩 번갈아가며 설명하고 나머지 사람은 그에 따라 코드를 작성하는 방식이었습니다. 결과물public class SelectionSort { public static void selectionSort(int[] arr) { int n = arr.length; // 배열의 각 원소를 순회하면서 가장 작은 원소를 찾아서 해당 인덱스와 현재 인덱스의 값을 교환 for (int i = 0; i 이번 페어프로그래밍 경험을 통해 자바 선 정렬을 구현하는 과정에서 여러 가지를 느꼈습니다.먼저, 팀원과의 협업을 통해 코드를 작성하는 것은 개발 과정에서 매우 중요하..
웹 Web웹은 정보 공유의 장입니다.웹을 통해 정보를 전송하고 공유할 수 있습니다. 백엔드가 웹에서 중요한 이유는 이러한 정보를 처리하고 관리하여 사용자에게 적절한 응답을 제공하기 때문입니다. HTTPHTTP는 웹에서 정보를 주고받는 프로토콜로,클라이언트가 서버에게 요청을 보내고, 서버는 이에 응답하는 방식으로 동작합니다. 이는 보내는 사람과 받는 사람 간의 약속된 형식을 따릅니다. 예시를 살펴보겠습니다! 사용자(View)-> "이름, 나이, 주소, 연락처 .." 주면서 회원가입 시켜줘 '요청'HTTP Request HTTP API Request는 클라이언트가 서버에게 리소스에 대한 특정 동작을 요청하기 위해 보내는 메시지입니다. HTTP Method (HTTP 메서드): 요청의 목적을 나타냅니다. ..
프로젝트 소개 Java Swing을 활용한 개복치 게임 프로잭트입니다. 프로젝트 기간 : 5일 프로젝트 인원 : 총 6 사용한 기술 스택 : JAVA Swing 맡은 역할 : HomeScreen FrontEnd & BackEnd 옆으로 넘겨 사진을 더 확인해보세요! 아래 github 클릭하시면 코드를 확인해보실 수 있습니다! 구현한 상세 기능 ( branch : home/ys ) 각 먹이 객체를 client 단에서 생성 먹이를 클릭할 시 개복치 체중 증가 상한 먹이를 먹었을 때 사망 페이지 띄우기 각 먹이는 다른 속도, 방향으로 제각기 움직이고 화면 모서리에 닿을 경우 반대방향으로 전환 상한 먹이 제외하고 다른 먹이가 모두 클릭된 경우 다시 먹이 초기화(전체 화면에 띄우기) 🥰 좋았던 점 2년 전, 학부..
애자일 방법론을 선호하는 이유 & 설계가 중요한 이유? 실제 개발 과정에서 변경사항이 빈번히 발생하고, 모델이나 라이브러리를 적용할 때 버전 관련 문제로 예정된 계획이 변경되는 경우가 흔합니다. 이에 따라 중간 점검과 대응이 필수적으로 요구되며, 협업 시에 각 이해관계자들의 이해도가 상이하여 설계가 더욱 중요해지는 경향을 보입니다. 저는 여러 프로젝트를 경험하면서 체계적이고 로직 간 의존성을 최소화하는 설계가 개발 시간을 현저히 줄일 수 있다는 것을 깨달았습니다. 이러한 경험을 통해 애자일 방법론을 적극적으로 채택하여 프로젝트를 진행하고 있습니다. 애자일 방법론은 변경에 유연하게 대응할 수 있으며, 중간 점검을 통해 프로젝트의 진행 상황을 파악하고 필요한 조치를 즉각적으로 취할 수 있는 프로세스를 제공합..
목표 JAVA의 심화 내용인 4특징, 5원칙과 각 원칙이 가지는 장점을 설명할 수 있습니다. 내용정리 내가 생각하는 객체 지향이란? 객체 지향 프로그래밍은 소프트웨어를 객체의 모임으로 바라보고, 이들 간의 상호작용을 중심으로 프로그래밍하는 패러다임입니다. 객체 지향의 핵심은 소프트웨어를 현실 세계의 모델로 표현하는 것이며, 이를 통해 유연하고 확장 가능한 코드를 작성하는 것이 목표입니다. 🗨️예를 들어, 아이가 비행기랑 팽이를 가지고 놀 때 그 사이에 장난감이라는 클래스를 만드는게 좋은 것처럼 말입니다. 4특징 5원칙 캡슐화: 데이터와 그를 다루는 메서드를 하나로 묶어 외부에서의 접근을 제어하는 것으로, 정보 은닉의 개념을 포함합니다. 상속: 부모 클래스의 특성과 메서드를 자식 클래스가 상속받아 재사용하..
목표 JAVA의 클린 코드와 리팩토링에 대해 이해하고 실제 코드를 리팩토링 해보는 실습을 진행하여 실제로 코드를 개선하고 향상시키는 경험을 쌓습니다. 내용정리 __________ EX01 { public abstract void method1(); public abstract void method2(); } ❓빈칸에는 어떤 게 들어가야 할까? abstract class 하면 에러 사라진다! : 1개이상 abstract 면 abstract 해주기로 약속 interface 해도 에러 사라진다! 추상 클래스(Abstract Class): 공통된 특성을 가진 클래스들의 부모 클래스로 사용됩니다. 상속을 통해 확장될 것으로 예상되는 메서드나 필드를 제공합니다. 일부 메서드의 구현을 제공할 수 있습니다. 상속을 통..
목표 Java의 추상클래스와 인터페이스, 자바 컬렉션 API에 대해 이해하고 로그인, 회원가입, 회원정보 수정 기능을 갖춘 데이터베이스 대체 클래스를 제작해봅니다. 내용정리 인터페이스의 사용 이유 정보 은닉: 실제 구현 클래스를 몰라도 인터페이스를 통해 사용할 수 있습니다. 구현 클래스의 독립성: 인터페이스를 통해 여러 클래스가 독립적으로 구현될 수 있습니다. 다형성: 인터페이스를 구현하는 클래스들을 통일된 타입으로 다룰 수 있습니다. 2. 인터페이스와 추상 클래스의 차이점 다중 상속: 인터페이스는 다중 상속이 가능하며, 추상 클래스는 단일 상속만 가능합니다. 구현: 인터페이스는 메서드의 선언만 있고, 구현이 없습니다. 반면에 추상 클래스는 일부 메서드의 구현이 가능합니다. 느슨한 결합: 인터페이스는 구..