controller 5

[Spring] MVC, MVP, MVVM의 차이는 무엇일까?

Spring 프레임워크에서 주로 사용되는 MVC 구조는 익숙하지만, 프론트엔드나 모바일 개발 환경에서는 MVP, MVVM 구조도 자주 등장한다. 각 구조는 어떤 차이를 가지고 있고, 어떤 상황에서 각 구조를 사용하는걸까? 1. MVC (Model-View-Controller) 패턴애플리케이션의 구성요소를 Model, View, Controller 3가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다. 구성 요소(1) 모델(Model)모델은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다. 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다. (2) 뷰(View)뷰는 사용자에게 보여지는 인터페이스 요소, 화면을 뜻한다. 모델이 가지..

SPRING 2025.06.07

[Spring] Custom AutoConfiguration 만들어보기

AutoConfiguration이란?Spring Legacy와 Spring Boot의 가장 큰 차이점 중 하나는 설정 방식입니다.  기존의 Spring에서는 XML이나 Java Config를 통해 직접 모든 Bean을 등록해야 했지만,  Spring Boot는 AutoConfiguration을 통해 필요한 Bean을 상황에 맞게 자동으로 등록해줍니다.  Auto-configuration을 사용하고 싶다면 @EnableAutoConfiguration 또는 @SpringBootApplication 어노테이션을 @Configuration 클래스 중 하나에 추가하면 됩니다. 간단한 AutoConfiguration 만들기실제로 나만의 AutoConfiguration 클래스를 만들어보겠습니다. 한국말로 "안녕하세요..

SPRING 2025.04.10

[백엔드 면접 질문 준비] (4) CI/CD란?

1. CI/CD란?- CI: Continuous Integration (지속적인 통합)CI는 여러 개발자들이 각자 개발한 코드를 공통된 저장소에 자주 통합하는 프로세스를 말합니다. 주요 목적은 코드 변경 사항을 빠르게 검증하고, 통합 시 발생할 수 있는 충돌을 최소화하는 것입니다.코드 푸시 시 자동으로 테스트 실행빌드 에러, 문법 오류, 테스트 실패 즉시 확인 가능팀원 간 빠른 피드백과 충돌 방지- CD: Continuous Delivery / Continuous Deployment (지속적인 전달 / 배포)CD는 CI 이후의 단계로, 테스트를 통과한 코드를 실제 운영환경 또는 staging 서버에 자동으로 배포하는 것을 의미합니다.Continuous Delivery: 운영 직전 단계까지 자동화 (운영 ..

Interview Question 2025.04.03

[Project] 학생 시험 채점 기능 개선 - DTO 활용으로 확장성 높이기

학생이 제출한 답안을 채점하는 기존 방식의 문제점 // 학생 시험 채점 @Transactional public void markStudentTest(Long id, StudentTestMarkRequest request) { StudentTest studentTest = getStudentTestById(id); ProblemSet problemSet = studentTest.getProblemSet(); int score = 0; List answerSet = new ArrayList(); // 해답 problemSet.getProblems().forEach(problem -> answerSet.add(problem.getA..

EduClass Project 2025.03.07

[Project] (3) 프로젝트 시작(MVC 패턴, 디렉토리 구조)

엔터티의 구조를 바꿨다. 일단 user의 타입을 따로 인가테이블에서 관리할 수 있도록 만들었다. 로그인 시 타입에 따라서 다른 테이블에 있는 데이터에 접근할 수 있다. 학생과 학부모의 관계가 n:m 관계이므로, 중간에 연결할 수 있는 학생-학부모 테이블을 생성하였다.관리자 테이블의 속성을 많이 줄였다.이제부터는 이 Entity들을 코드로 변환하기 위한 spring project 구조에 대해서 알아보자. MVC 패턴MVC 패턴은 Spring 프로젝트를 구성할 때, 역할에 따라서 Model, Controller, View로 로직을 분리하여 사용하는 패턴이다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있으며, 좀 더 나은 관리를 하기 위해 사용한다.일단 각각을 알아보기 전에 소프트웨어가 이..

EduClass Project 2025.02.05