분류 전체보기 52

스프링부트 3 테스트 코드 알아보기 (feat. JUnit, AssertJ)

테스트 코드란?테스트 코드는 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없는지 확인할 목적으로 작성하는 코드이다.테스트 코드는 test 디렉토리에서 작업한다. (이전 글에 이미 디렉토리를 생성했다.)테스트 코드에도 다양한 패턴이 있는데, 그중 책에서 사용할 패턴은 given-when-then 패턴이다.given-when-then 패턴given: 테스트 실행을 준비하는 단계when: 테스트를 진행하는 단계then: 테스트 결과를 검증하는 단계 스프링부트 3에서 테스트 진행하기스프링 부트는 애플리케이션을 테스트하기 위한 도구와 애너테이션을 제공한다. 이전 글을 보면 나는 이미 spring-boot-starter-test 스타터에 테스트를 위한 도구를 사용하도록 설정해두었다.JUnit: 자바 프로..

스프링부트3 구조 이해하기 (feat. 디렉토리 구성, 의존성 추가, 계층별 구현, 요청-응답 과정)

웹 브라우저의 요청이 있으면, 이 요청을 **Controller클래스에서 받아 분기 처리를 하여 '어떤 요청'인지 확인하고 **Service 클래스에서 받은 요청에 맞는 작업을 실행하게 한다.(Service클래스의 메서드 호출)**Service 클래스에서는 Controller가 지정한 요청에 맞는 작업을 실행한다. 이를 위해 DB에서 데이터를 가져와야 하므로, 받은 요청에 맞는 데이터를 가져오기 위해 **Repository클래스의 메서드를 호출한다.**Repository메서드는 데이터베이스를 위한 클래스로, Member클래스로 구현한 클래스를 MemberRepository 클래스가 실제 테이블과 연결한다.Controller: 프레젠테이션 계층Serivce: 비즈니스 계층Repository: 퍼시스턴스 계..

[참고&알아두면 좋은] 디프체커

https://www.diffchecker.com/ Diffchecker - Compare text online to find the difference between two text filesDiffchecker will compare text to find the difference between two text files. Just paste your files and click Find Difference!www.diffchecker.com 눈으로 하나 씩 코드 비교하기 어려울 경우, 해당 사이트의 도구를 사용하여 내가 입력한 코드와 제공한 코드의 차이를 한눈에 보여준다.왼쪽은 제공한 코드, 오른쪽은 내가 작성한 코드

[모던 자바스크립트] CH.14 지역변수의 문제점

사실 1단원부터 계속 기록해온 자료들이 있지만.. 기술 블로그에 올리는 시기를 놓쳤다.이전 꺼를 한번에 올리기엔 너무 많은 양이므로 14단원부터 공부한 것들을 차근차근 올리도록 하겠다.  역시 손으로 먼저 작성해보았다. 이렇게 가지 형태로 정리를 하는 것이 머릿속에 더 잘 들어온다. 오늘의 포인트오늘 공부의 포인트는 전역 변수의 사용을 최대한 지양해야 한다는 점이다. 가장 큰 이유는, 전역 스코프를 가지는 전역 변수는 어디에서든지 참조가 가능하고, 변경 가능하기 때문에 코드의 가독성이 낮아지고, 변경 가능한 위험성이 높아지기 때문이다.전역 변수 사용을 억제하는 방법에서 모듈패턴을 활용하여 캡슐화를 구현하는 코드가 조금 어려웠다. 특히 즉시 실행함수를 사용한 점이 헷갈렸다. 뒷 장에서 모듈패턴에 대해 좀 ..

Web/JavaScript 2025.02.27

생성한 스프링부트3 프로젝트 코드 뜯어보기

앞서 스프링부트3 프로젝트를 만들었었다.https://to-mypage.tistory.com/53  gradle 및 스프링 부트3 프로젝트 생성인텔리제이 설치 먼저 인텔리제이를 설치했다. 설치 방법은 여기를 참고바란다.https://to-mypage.tistory.com/51  gradle 프로젝트 생성 1. New Project 클릭 ➡️ Build system을 Gradle로 설정 ➡️ 'download JDK...to-mypage.tistory.com 이제 여기의 코드를 찬찬히 살펴보려고 한다. @SpringBootApplication 어노테이션의 의미package me.jinsoyeong.springbootdeveloper;import org.springframework.boot.SpringApp..

스프링부트3 기능 살펴보기 (feat. 어노테이션, 스프링부트 스타터)

예제 클래스 만들기(TestController.class)사용자가 url을 통해 /test GET요청을 하면, "Hello, world!"문자열을 반환하는 코드이다.서버를 재실행해주고, http://localhost:8080/test 로 접속해본다.  http://localhost:8080/testlocalhost: 현재 사용 중인 컴퓨터8080: 포트번호/test: @Getmapping 어노테이션으로 메서드와 매핑할 때 스프링 부트에서 설정한 경로  springboot starter 스프링부트 스타터 스프링부트 스타터는 의존성이 모여있는 그룹이다.스타터는 spring-boot-starter-{작업유형} 이라는 명명규칙이 있다.자주 사용하는 스타터spring-boot-starter-web: spring ..

스프링 콘셉트 (feat. IoC, DI, AOP, PSA)

스프링 부트의 등장스프링은 장점이 많은 개발 도구이지만, 설정이 복잡하다는 단점이 존재했다. 그래서 등장한 것이 스프링 부트이다.스프링 부트는 빠르게 프로젝트를 설정할 수 있고, 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성을 사용하거나 관리할 수 있다. 개발자가 비즈니스 로직 개발에만 집중할 수 있도록 만들어주는 도구인 것이다. 1. 톰캣, 제티, 언더토우 같은 WAS(Web application Server)가 내장되어 있어서 따로 설치하지 않아도 독립적으로 실행 가능하다.2. 빌드 구성을 단순화 하는 스프링 부트 스타터를 제공한다.3. XML 설정을 하지 않고 자바 코드로 모두 작성 가능하다.4. JAR을 이용해서 자바 옵션만으로도 배포가 가능하다.5. 애플리케이션의 모니터링 및 관리도구인..

스프링을 배우기 전, 알아두면 좋은 지식 (feat. 서버, 클라이언트, ip, port, 라이브러리, 프레임워크, 데이터베이스)

서버와 클라이언트인터넷 서비스는 서버와 클라이언트가 관계를 맺는다.클라이언트는 서버에 다양한 요청을 진행하고, 서버는 클라이언트가 요청한 내용을 처리하여 응답(결과 전달)을 해준다.클라이언트서버로 요청하는 프로그램을 모두 일컫는다.우리가 사용하는 웹 브라우저가 바로 대표적인 클라이언트 중 하나.우리가 주소를 입력하여 홈페이지로 이동하는 행위 자체가 '서버에 요청을 보내는' 행위이다. 그러면 서버는 이 요청을 받고 우리가 입력한 주소에 맞는 화면으로 응답을 보내준다. 우리는 그 화면을 보고 있는 것이다.서버클라이언트의 요청을 받아 처리하는 주체클라이언트가 데이터를 요청했다면, 데이터를 주고/ 단지 서버 내에서 처리만 해달라는 요청을 했다면 해당 요청만 처리할 수도 있다.위에서 말했듯, 우리가 웹 브라우저에..

gradle 및 스프링 부트3 프로젝트 생성

인텔리제이 설치 먼저 인텔리제이를 설치했다. 설치 방법은 여기를 참고바란다.https://to-mypage.tistory.com/51  gradle 프로젝트 생성 1. New Project 클릭 ➡️ Build system을 Gradle로 설정 ➡️ 'download JDK...' 클릭책에서 JDK17버전을 사용하고 있었는데, 나는 Azul Zulu JDK11버전을 사용중이었어서 새롭게 다운로드 받아야 했다.JDK에서 'download JDK...'를 누른다.이미 JDK17버전을 쓴다면 아래 과정 스킵 가능  2. version: 17로 선택 ➡️ Vendor는 아무거나 가능하다. 나는 Azul Zulu Community를 선택했다.   3.언어: JavaName(프로젝트 이름): springboot-d..