전체 글 64

DBMS/ ORM/ 스프링 데이터 JPA 조회, 삭제, 추가 메서드, 쿼리 메서드 사용

DBMS(Database Management System)DBMS란?데이터베이스를 관리하기 위한 소프트웨어를 DBMS라고 한다.DB는 많은 사람들이 공유할 수 있어야 하므로 동시 접근을 할 수 있어야 한다.DBMS는 이런 요구사항을 만족하면서도 효율적으로 데이터베이스를 관리하고 운영한다.우리가 흔히 알고 있는 Oracle, MySQL 등도 DBMS이다.관계형, 객체=관계형, 도큐먼트형, 비관계형 등으로 분류되며 가장 많이 사용하는 DBMS는 관계형이다. 관계형 DBMS(RDBMS = Relational database management system)관계형 모델을 기반으로 하며 테이블 형태로 이루어진 데이터 저장소이다. 행과 열로 이루어져있다.회원 테이블이 있다고 가정하면 각 행은 고유의 키(id)를 가..

MockMvc를 사용하여 컨트롤러를 테스트하는 코드 작성해보기

이제 제대로 테스트 코드를 작성해보자. 1. TestController클래스의 이름에 클릭을 한 다음, ctrl + enter를 눌러서 [Create Test]를 누른다. 2. 테스트를 생성하면, 자동으로 test/java/패키지 아래에 테스트 파일이 생성된다.  3. 아래 코드 작성package me.jinsoyeong.springbootdeveloper;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.an..

스프링부트 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. 애플리케이션의 모니터링 및 관리도구인..