Study

· Study
01. 테스트 코드 작성하기 테스트 코드를 작성하기 전에 TDD와 단위 테스트에 대해 알아보자. 먼저 TDD와 단위 테스트는 다른 이야기다. TDD는 테스트가 주도하는 개발을 이야기 하며, 테스트 코드를 먼저 작성하는 것부터 시작한다. RED: 항상 실패하는 테스트를 먼저 작성하고 시작 GREEN: 테스트가 통과하는 프로덕션 코드를 작성 REFACTOR: 테스트가 통과하면 프로덕션 코드를 리팩토링 반면 단위 테스트는 TDD의 첫 번째 단계인 기능 단위 테스트 코드를 작성하는 것을 말한다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것이 아니며 리팩토링이 포함되지 않는 순수 테스트 코드만을 작성하는 것을 의미한다. 테스트 코드를 작성하면 다음과 같은 이점이 있다. 단위 테스트는 개발단계 초기에 문..
· Study
06. AOP AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항 cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? MemberService 회원 조회 시간 측정 추가 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annota..
· Study
05. 스프링 DB 접근 기술 H2 데이터베이스 설치 순수 Jdbc 스프링 통합 테스트 스프링 JdbcTemplate JPA 스프링 데이터 JPA 1. H2 데이터베이스 설치 H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2databas..
· Study
03. 스프링 빈과 의존관계 회원 컨트롤러가 회원 서비스와 회원 리포지토리를 사용할 수 있게 의존성을 준비하자. import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = ..
· Study
02. 회원 관리 예제 - 백엔드 개발 개발 순서는 다음과 같다. 비즈니스 요구사항 정리 회원 도메인과 리포지토리 만들기 회원 리포지토리 테스트 케이스 작성 회원 서비스 개발 회원 서비스 테스트 1. 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 갸상 시나리오: 아직 데이터 저장소가 선정되지 않음 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 (ex: 회원의 이름은 중복될 수 없다.) 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 회원, 주문, 쿠폰 등 주로 DB에 저장하고 관리되는 비즈니스 도메인 객체 아직 데이터 저장소가 선정되지 않았기 때문에 먼저 인터페이스로 구현 클래스를 변경할 수 있도록 설계한다. 데이터 저장소는 RD..
· Study
01. Spring 웹 개발 기초 웹 개발 시엔 크게 3가지 방법이 있다. (1) 정적 컨텐츠 - 서버에서 하는 것 없이 파일을 그대로 웹브라우저에 띄우는 것 웹 브라우저에서 loalhost:8080/hello-static.html을 입력하면, 내장 톰캣 서버가 요청을 받는다. 내장 톰캣 서버가 hello-static.html을 스프링에게 넘기면 스프링은 컨트롤러(Controller)를 우선순위로 두고 hello-static이라는 컨트롤러가 있는지 확인 한다. 해당 컨트롤러가 없을 경우 Stpring Boot는 resources내부에 있는 static/hello-static.html 을 찾은 후 웹브라우저에 반환하는 과정으로 동작이 이루어진다. hello-static.html 정적 컨텐츠 입니다. (2)..
· Study
웹, 앱 개발 시에는 요구되는 여러 아키텍처 패턴들이 있다. MVC (Model-View-Controller) MVP (Model-VIew-Presenter) MVVM (Model-View-ViewModel) MVI (Model-View-Intent) 기타 이름에는 각각 M(Model)과 V(View)를 공통적으로 가지고 있는데, 이들은 다음과 같은 기능을 수행한다. Model: 웹/앱에서 사용되는 데이터와 그 데이터를 처리하는 부분 (생성 or 업데이트) View: 사용자에게 보여지는 UI 부분 프로그램의 Presentation logic*, Business logic* 을 구현할 때에는 데이터와 UI가 필수적이기 때문에 당연히 M-V 사이의 의존성이 생길 수밖에 없다. Presentation logi..
· Study
함수 package 함수; public class JavaTest{ static void myFunction(){ // static 으로 선언된 함수는 static으로 선언된 함수에서 선언 가능 System.out.println("return 값을 가져갈 수 없음"); } static void myAdd(int num){ // 매개변수 int num System.out.println("매개변수 하나가 있습니다." + num); } static void myAdd(String a, String b){ System.out.println(a + b); } // 오버로딩: 함수 이름이 같지만 매개변수의 개수나 자료형이 다른 경우 호출 가능 int myAdd(int a, int b){ return a+b; } p..
jeonniu
'Study' 카테고리의 글 목록 (2 Page)