목록전체 글 (202)
gimmickbutreal
대부분의 규모있는 Spring Boot 프로젝트에서는 컨트롤러에서 리포지터리를 직접 호출하지 않고 중간에 서비스(Service)를 두어 데이터를 처리합니다. 서비스는 Spring Boot에서 데이터 처리를 위해 작성하는 클래스인데, 서비스를 쓰는 이유는 무엇일까요? 크게 모듈화, 보안, Entity 클래스 3가지 이유가 있습니다. 모듈화 예를 들어 어떤 컨트롤러가 여러개의 리포지터리를 사용하여 데이터를 조회한 후 가공하여 리턴한다고 가정했을 때, 이러한 기능을 서비스로 만들어두면 컨트롤러에서는 해당 서비스를 호출하여 사용하면 된다. 하지만 서비스로 만들지 않고 컨트롤러에서 구현하려 하면 해당 기능을 필요로 하는 모든 컨트롤러가 동일한 기능을 중복으로 구현해야 하므로 서비스는 모듈화를 위해서 꼭 필요합니다..
8월 29일부터 본격적인 취업 준비를 시작하기로 했다! 내가 졸업한 학교는 오늘 개강을 했다고 한다! 취준의 주요 내용은 아래와 같다. 1. 현재 진행하는 협업 프로젝트의 완벽한 이해 - 대체로 내가 희망하는 기업의 자소서 문항에는 직무 관련 경험과 단체 생활을 하면서 겪었던 문제 해결 사례가 있다. CS 지식도 중요하지만 본인이 자소서에 적은 프로젝트에 대해서 제대로 이해하지 못하고 있는 사람을 뽑아줄 회사는 없을 거 같다. - 특히 내가 하자고 했던 아이디어를 하게 되어 팀장도 맡았고 모두 열심히 하는 만큼 내가 지금보다 더 열심히 하는 모습을 보여주어야 한다. - Spring Boot 프레임워크를 사용하기도 하고 html css js와 같은 처음 배우는 언어를 사용하는 만큼 공부가 곧 취업 준비라는..
@GetMapping GetMapping 애노테이션(어노테이션, Annotaion)을 쓰는 이유는 무엇일까? 1 2 3 4 5 6 7 8 9 @Controller public class homeController { @GetMapping("/") /* localhost:8080/ 요청이 들어오면 아래의 메소드를 실행하도록 하는 역할 */ public String showHome() {return "home";} } Colored by Color Scripter cs 위 코드를 보면 @Controller 애노테이션을 적어준 후 그 다음으로 @GetMapping 애노테이션을 적어주는 걸 볼 수 있다. 이는 localhost:8080/ 요청이 들어오면 아래의 메소드를 실행하도록 설정하는 역할이라고 생각하면 된..
@Controller Controller 클래스에 @Controller 애너테이션(어노테이션,Annotation)을 작성하는 이유는 무엇일까? 해당 애노테이션이 적용된 클래스가 Controller임을 나타내주면서 bean으로 등록돼 해당 클래스가 Controller로 사용됨을 Spring Boot Framework에 알려주는 역할을 합니다. 여기서 bean이란 Spring Boot 컨테이너가 관리하는 자바 객체를 의미합니다. 스프링의 특징 중 하나인 제어의 역전(IoC)가 있는데, 객체의 생성 및 제어권을 사용자가 아닌 스프링에게 맡기는 것입니다. 스프링 프레임워크를 사용하기 전에는 사용자가 new 연산을 통해 객체를 생성하고 메소드를 직접 호출해왔습니다. 하지만, 이러한 제어의 역전(IoC)가 적용된 ..
도커를 M1 환경에서 설치하는 방법은 다음과 같습니다. https://www.docker.com/get-started/ Developers - Docker Developer productivity tools and a local Kubernetes environment. www.docker.com 먼저 위 사이트로 접속한 후, Docker Desktop에서 Download for Mac - Apple Chip을 선택해 다운로드하면 됩니다. # MySQL 이미지를 사용해 컨테이너 생성 docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=pass mysql --character-set-server=utf8mb4 --collation-server=u..
데이터베이스를 사용하려면 SQL 쿼리라는 구조화된 질의를 작성하고 실행하는 등의 복잡한 과정이 필요합니다. 이때 ORM을 이용하면 자바 문법만으로도 데이터베이스를 다룰 수 있다. 이때 ORM(object relational mapping)을 이용하면 자바 문법만으로도 데이터베이스를 다룰 수 있습니다. 즉, ORM을 이용하면 개발자가 쿼리를 직접 작성하지 않아도 데이터베이스의 데이터를 처리할 수 있습니다. JPA란? 스프링부트는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM의 기술 표준으로 사용하는 인터페이스의 모음입니다. JPA는 인터페이스이며 따라서 인터페이스를 구현하는 실제 클래스가 필요합니다. JPA를 구현한 대표적인 실제 클래스에는..
스프링부트 프로젝트의 전체 구조는 다음과 같다. src/main/java 디렉터리 src/main/java 디렉터리의 com.ll.exam.sbb 패키지는 자바 파일을 작성하는 공간입니다. 자바 파일로는 MainController.java와 같은 스프링부트의 Controller가 있으며 폼과 DTO는 물론 데이터 베이스 처리를 담당하는 Entity, Service 파일도 이에 포함됩니다. 현재 위 사진에는 Controller만 존재합니다. SbbApplication.java 파일 모든 프로그램에는 시작을 담당하는 파일이 있습니다. 마찬가지로, 스프링부트 애플리케이션에도 시작을 담당하는 파일이 있는데 여기서는 SbbApplication.java 파일이 이에 해당합니다. 파일명은 프로젝트명+Applicati..