분류 전체보기(33)
-
스프링 입문 - 05. 회원 관리 예제 (웹 MVC 개발)
회원 가입, 회원 조회를 웹에서 볼 수 있도록 만들고자 한다. 홈 화면 추가 HomeController package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 이전에 @GetMapping("/")이 localhost:8080의 주소를 가리킨다. 하지만 예전에 static 안에 index.html로 연결되는 welcome p..
2023.04.24 -
스프링 입문 - 04. 스프링 빈과 의존관계
Dependency Injection (DI) DI란 번역 그대로 의존관계 주입이라는 뜻이다. 객체의 의존관계를 외부에서 넣어주는 것이다. Controller 가 Service와 Repository를 사용할 수 있게 의존관계를 만들어주자. public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); 기존 Service에서는 Repository를 이용하기 위해 new라는 키워드를 이용해 새로운 객체를 만들어 주었다. 이 코드를 DI를 적용해서 변경하면 아래와 같다. public class MemberService { private final MemberRepository m..
2023.04.23 -
Java Collection Framework
Collection Framework 자바는 여러 객체를 그룹으로 만들고 추가, 삭제, 검색 등의 조작을 효율적으로 사용할 수 있는 interface와 class 들을 java.util 패키지에서 제공한다. 이들을 총칭해서 Collection Framework라고 한다. Collection Framework의 구조 Collection Framework 에는 크게 List, Set, Map이 있다. Map의 경우 Collection interface를 상속하지는 않지만 그래도 Collection Framework으로 분류된다. 위의 그림에서 초록색 박스는 Interface, 주황색 박스는 Class이다. 물론 그림에 있는 게 다는 아니지만 많이 사용하는 것 위주로 적어보았다. 이 글에서는 대략적인 특징만..
2023.04.19 -
스프링 입문 - 03. 회원 관리 예제
일반적인 웹 어플리케이션 계층 구조 Controller : 웹 MVC의 컨트롤러, 클라이언트로부터 들어온 HTTP request를 처리하고 HTTP Response를 반환한다. Service : 핵심 비즈니스 로직 구현 Repository : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 Domain : 비즈니스 도메인 객체 회원 관리 비즈니스 요구사항 데이터 : 회원 ID, 이름 기능 : 회원가입, 조회(ID / 이름 별로) DB 저장소는 구현체로 메모리 기반 데이터 저장소 사용 회원 Domain package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getI..
2023.04.18 -
스프링 입문 - 02. 스프링 웹 개발 기초
thymeleaf 템플릿 엔진 작동 확인 // java/hello/hellospring/controller/HelloController.java @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data", "hello!!"); return "hello"; } 안녕하세요. 손님 @Controller Controller class 에는 @Controller 어노테이션을 적어 준다. 이는 Spring Bean으로 등록시켜 주고 Controller 클래스라고 쉽게 알 수 있게 해 준다. @GetMapping Controller 내 HTTP GET r..
2023.04.16 -
Spring Initializer를 이용한 Spring Boot 환경설정
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 김영한 님의 스프링 입문 강의를 보며 공부한 내용을 정리해보고자 한다. Spring Boot를 기반으로 진행되는 강의이다. Spring Initializer Spring Boot를 이용한 초기 설정을 위해서는 https://start.spring.io/라는 페이지를 이용한다. Gradle / Maven, Language, Spring boot version, dependency..
2023.04.16 -
객체지향 설계 5원칙 - SOLID
이전에 작성한 객체 지향 생활 체조 글에서 SOLID 원칙을 언급한 바 있다. SOLID 원칙을 잘 적용하기 위해 객체 지향 생활 체조를 적용한다고 했었는데 그렇다면 이제 SOLID에 대해 알아보도록 하자. 2023.03.03 - [Java] - 객체지향 생활 체조 객체 지향 생활 체조 친형이 자바를 이용한 미션을 주고 코드리뷰를 진행해 주었다. 이때 제일 먼저 알려준 것이 바로 객체지향 생활 체조 9가지 원칙이다. SOLID 원칙을 적용하기 위한 객체지향 생활 체조 9 원칙은 코 koomchang.tistory.com SOLID 원칙이란? SOLID 원칙이란 객체지향 프로그래밍을 위해 지켜야 할 원칙 5가지의 첫 글자를 딴 것이다. Single-Responsibility Principle : 단일 책임..
2023.04.12 -
git action 을 이용한 CI/CD 구축
학교에서 알파프로젝트를 진행하며 항상 새로운 것을 배우는 것을 목표로 하고 있다. 지난 학기 알파프로젝트에서는 Docker 컨테이너에 대해 학습하고 적용해 보았고 이번 프로젝트에서는 개발뿐 아니라 테스트 코드 작성 및 CI/CD 파이프라인을 간단하게 라도 시도해보고자 하였다. CI / CD 파이프라인 CI/CD 란 Continuous Integration / Continuous Delivery를 의미한다. 지속적 통합, 지속적 배포라고도 불린다. 소프트웨어의 개발, 테스트, 배포를 통합하고 이를 자동화하는 것을 목표로 한다. 이를 이용하면 사용자가 개발한 코드에 대해서 직접 테스트를 하지 않더라도 CI/CD가 자동으로 테스트를 해주며 문제가 없을 시 배포까지 자동으로 연결되도록 진행할 수 있다. 저번 프..
2023.04.09 -
객체지향 생활체조
SOLID 원칙을 적용하기 위한 객체지향 생활 체조 9 원칙은 코드를 readable(읽기 좋은), maintainable(유지 관리), reuseable(재사용 가능), scalable(확장 가능) 하게 디자인 할 수 있다. 더보기 객체지향 생활 체조 9가지 원칙 규칙 1: 한 메소드에 오직 한 단계의 들여쓰기(indent)만 한다. 규칙 2: else 예약어를 쓰지 않는다. 규칙 3: 모든 원시값과 문자열을 포장한다. 규칙 4: 한 줄에 점을 하나만 찍는다. 규칙 5: 줄여쓰지 않는다(축약 금지). 규칙 6: 모든 엔티티를 작게 유지한다. 규칙 7: 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다. 규칙 8: 일급 컬렉션을 쓴다. 규칙 9: 게터/세터/프로퍼티를 쓰지 않는다. 1. 한 메소드에..
2023.03.03