전체 글 10

코드잇 스프린트 초급 프로젝트(FINDEX) 개발 회고록

1. 프로젝트 개요본 프로젝트는 공공데이터 API를 활용해 금융위원회·거래소 지수 정보를 실시간 수집하고, Spring Boot 기반의 경량·고속 API 연동 도구로 최적화된 성능을 제공합니다. 나아가 직관적 대시보드에서 KOSPI·KOSDAQ·글로벌 인덱스 등 주요 지수의 실시간 변동을 그래프와 숫자로 시각화하고, 사용자 맞춤 알림 기능을 지원합니다.2. 담당한 작업자동연동 설정 관리{지수}와 {활성화} 정보를 가지고 모든 속성을 통해 지수를 비활성화하여 자동 연동 설정을 등록할 수 있다.{지수}와 {활성화}로 자동 연동 설정 목록을 조회할 수 있으며, 정렬 및 페이지네이션을 구현하여 목록을 커서를 내려서 조회할 수 있게 한다. 이 때, 목록에서 {활성화/비활성화} 전환이 가능해야한다.활성화된 지수의 ..

Spring MVC)게시판 만들기 - DTO 추가

이전 게시판 제작 과정에선 Controller에 엔티티를 직접 연결해서 요청 값으로 Board 엔티티를 직접 받게 했다. 하지만 이와 같이 엔티티 값을 직접 받게 되면 문제가 발생한다. 이번에는 DTO에 대해서 그리고 프로젝트에 DTO를 연결한 과정을 기록하려고 한다.우선, DTO란 무엇일까?DTO(Data Transfer Object, 데이터 전송 객체)란 프로세스 간에 데이터를 전달하는 객체를 의미한다. 데이터를 전송하기 위해 사용하는 객체이기에 그 안에 비즈니스 로직 같은 복잡한 코드는 존재하지 않고 순수하게 전달하고 싶은 데이터만 담겨있다. Entity와 Controller를 섬이라고 한다면 DTO는 그 사이를 연결해 주는 다리와 같은 역할을 하는 것이다. 그러면 왜 Entity와 Controll..

Spring MVC 2025.04.25

@PathVariable과 @RequestParam의 차이에 대한 공부

게시판 프로젝트를 진행하면서 가장 헷갈렸던 부분을 고르라고 한다면, Controller부분을 작성할 때 사용되었던 @PathVariable과 @RequestParam이었다. 게시판 프로젝트를 시작하고 Controller를 처음 만들었을 때, 게시글 삭제 부분에서 @PathVariable을 사용했다가 삭제가 이루어지지 않는 것을 보고 '왜 되지 않지? 분명 게시글의 id를 받아와서 삭제 처리가 되어야되는데?'라는 생각으로(이 때는 수정, 상세 문단에서 @PathVariable을 써서 삭제도 당연히 그걸써야되는줄 알았다.)한시간을 넘게 고민을 했었다. 그러던 중 @PathVariable을 제외하고 @RequestParam도 있다는 것을 깨닫고(지금 생각하면 왜 @RequestParam을 제외했는지 이해가 되..

Spring MVC 2025.02.20

Spring MVC)게시판 만들기 - 웹어플리케이션 실행 및 부족한 점 고찰

게시판 프로젝트의 개발이 완료되었다. 이제는 프로젝트와 연동된 h2 Database를 실행시키고 프로젝트를 생성할 때부터 있었던 Application클래스를 실행하여 실제 웹상에서 제대로 동작하는지를 볼 것이다.Controller에서 설정해 주었던 /board를 붙여 http://localhost:8080/board링크를 들어가면 게시판 리스트 페이지가 제대로 동작한다! 다음으로 글쓰기를 클릭하여 게시글 작성이 잘 되는지 살펴보자.글을 작성하여 작성버튼을 누르면 내용은 모르겠지만 제목은 리스트에 제대로 등록된 것을 볼 수 있다.(잘 보이게 하기위해 사진에 깨끗한이란 효과를 입혔다.)이제 글 상세 페이지가 제대로 동작하는지와 글 삭제가 제대로 동작하는 지를 확인해보자. 상세 페이지를 보면 작성시 입력한 제..

Spring MVC 2025.02.07

Spring MVC)게시판 만들기 - Controller 생성

Controller계층 MVC 패턴에서 컨트롤러가 모여있는 곳을 말한다. 컨트롤러는 서비스 계층을 호출하고 그에 따른 결과를 뷰(JSP)에 전달하는 역할을 한다. 쉽게 말하자면 서비스와 뷰를 잇는 다리역할을 하는 것이다.※JPS란?JavaServer Pages의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다. @Controller : 해당 클래스가 웹 어플리케이션의 컨트롤러임을 나타낸다. 컴포넌트 스캔(Component-Scan)에 의해 스프링 빈으로 등록되며, 들어온 요청을 해당 컨트롤러에 매핑하여 처리한다. @RequestMapping : 특정 url로 요청(Request)를 보내면 Controller에서 어떠한 방식으로 처리할지 정의하게 되는데, ..

Spring MVC 2025.02.07

Spring MVC)게시판 만들기 - Service 생성

Service 계층에는 비즈니스 로직이 존재하고 트랜잭션(Transaction)을 시작한다. 이 계층은 데이터 접근 계층인 리포지토리를 호출하여 사용한다.※트랜잭션이란?데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻하며 상태를 변화 시킨다는 것은 질의어(SQL)를 이용하여 데이터베이스에 접근하는 것을 의미한다. 이 때 사용하는 질의어의 종류는 아래와 같다.SELECTINSERTDELETEUPDATE@Service : 이 어노테이션 또한 @Repository와 마찬가지로 컴포넌트 스캔(component-scan)에 의해 스프링 빈으로 등록된다. @Transactional : 스프링 프레임워크는 이 어노테이션이 붙어 있는 클래스나 메소드에 트랜잭션(Transaction)을 적용한다. 외부에..

Spring MVC 2025.02.06

Spring MVC)게시판 만들기 - Repository 생성

리포지토리(Repository)란? 리포지토리는 JPA를 직접 사용하고 엔티티 메니저를 사용해 엔티티를 저장하고 조회하는 곳으로 엔티티에 의해 생성된 데이터베이스 테이블에 접근하는 메서드들을 사용하기 위한 인테페이스이다.(예:findAll, save, delete 등)데이터 처리를 위해선 테이블에 어떤 값을 넣거나 값을 조회하는 등의 CRUD(Create, Read, Update, Delete)가 필요한데,이러한 CRUD를 어떻게 처리할지 정의하는 계층이다. -@Repository : 해당 어노테이션을 사용하면 클래스가 스프링의 Bean으로 등록되어 Component Scan을 통해 자동으로 인식된다.하지만 Spring Data JPA를 함께 사용하면 해당 어노테이션을 사용하지 않아도 자동으로 빈 등록..

Spring MVC 2025.02.05

Spring MVC)게시판 만들기 - Entity 생성

@Entity : JPA를 사용해서 테이블과 매핑할 시에 필수적으로 사용해야한다.※주의!기본 생성자는 필수적으로 들어가야한다.(파라미터가 없는 public, protected 생성자)final, enum, interface, inner클래스에는 사용할 수 없다.저장할 필드에 final은 사용하면 안된다.@Table : 엔티티와 매핑할 테이블을 지정한다. 이 때 name속성은 메핑할 테이블 이름을 지정해주며 지정해주지 않으면 엔티티 이름을 테이블 이름으로 지정한다. @NoArgsConstructor : Lombok 라이브러리 내에 있는 기능으로 파라미터가 없는 디폴트 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다. @Gette..

Spring MVC 2025.02.05

Spring MVC)게시판 만들기 - 프로젝트 환경 설정

dependenciesSpring Web : Spring MVC, Apache Tomcat 등 웹 개발에 필요한 의존성을 제공한다.Spring Data JPA : JPA를 사용하기 위한 의존성을 제공한다.Lombok : 어노테이션을 사용하여 반복되는 코드를 줄이기 위한 의존성을 제공한다.H2 DB : H2 DB 연동을 위한 의존성을 제공한다.Thymeleaf : Thymeleaf 템플릿 엔진을 사용하여 View를 렌더링 하기 위한 의존성을 제공한다.롬복사용을 위한 플러그인 설정프로젝트 내 롬복 사용을 위한 플러그인 설정어노테이션 설정프로젝트 내 어노테이션을 사용할 수 있도록 Enable annotation processing에 체크application.yml 설정h2 database와 연결, 어플리케이션..

Spring MVC 2025.02.04

Spring MVC)게시판 만들기 - MVC 개념 정리

김영한 강사님의 강의를 들으며 웹개발에 대해 공부하던 중에 계속 강의만 들으면서 클론코딩을 하면 정작 내 실력은 늘지 않겠다 싶어서(내가 무엇을 제대로 이해했는지 알지를 못하니...) 처음으로 게시판 프로젝트를 만들어보기로했다. 프론트엔드쪽은 실행되는 것만 확인할 수 있도록 뼈대만 만들었다.(내가 원하는건 백엔드 공부니까)솔직히 이렇게 기록을 남기는게 처음이라 조금 어색하긴한데.... 이건 게시판 프로젝트를 만들고 차차 정리해보려고 한다. 우선 프로젝트를 만들기 전에 MVC가 뭔지 정리해보자. MVC 패턴은 웹 개발 시 Model, View, Controller 이 세가지 영역으로 나눠서 서로의 역할을 나눈 것을 말한다.웹 어플리케이션 개발에선 보통 이 패턴을 사용한다고 한다. 컨트롤러 측에서는 HTT..

Spring MVC 2024.11.08