전체 글

백엔드 개발자 | 프로젝트를 하며 겪은 일들을 기록합니다.
· 🚧
프로젝트에 Spring Data JPA 적용하기 build.gradle 수정 Spring Data JPA 와 H2 를 사용하기 위해 아래처럼 build.gradle 파일을 수정한다. Spring Data JPA 가 무엇이고 SQL Mapper와는 어떻게 다른지 궁금하다면... 👉 SQL Mapper vs ORM (feat. Hibernate vs Spring Data JPA) H2는 인메모리 RDBMS로 Spring boot 에 내장되어 있다. 별도의 설치가 필요 없고 메모리에서 실행되므로 애플리케이션 실행 시 초기화돼서 테스트 용도로 자주 쓰이는 DB 이다. 수정해주고 gradle 반영 버튼을 꼭 누르자. dependencies { ... implementation 'org.springframework..
· 🚧
Persistence Framework 프로그램이 종료되어도 사라지면 안되는 데이터들이 있다. 이런 데이터들을 우리는 DB에 저장한다. 이렇게 데이터가 생성되고 프로그램이 종료되어도 사라지지 않는 성질을 영속성(Persistence)라고 한다. Java 에서는 데이터의 영속성을 위해, 즉 DB 작업을 할 수 있게 해주는 JDBC(Java Database Connectivity) 프레임워크를 지원해주고 있다. JDBC를 사용하는 방법은 꽤 번거롭다. DB에 접근해 Connection을 얻고, SQL 를 수행해 얻은 결과값을 Java Object Type 에 맞게 변환(Mapping) 하는 작업을 개발자들이 하나하나 해야 한다. 이런 번거로운 JDBC 작업을 대신 해주는 것이 바로 SQL Mapper 와 O..
· 🚧
Application 코드 작성하기 Application 클래스는 springboot 프로젝트의 메인 클래스가 된다. src/main/java 에 com.study.springbootaws 패키지를 생성한다. 패키지명은 보통 회사 도메인의 역순으로 만든다. 그 아래에 Application class 를 생성하고 아래처럼 내용을 작성한다. src/main/java/com.study.springbootaws/Application package com.study.springbootaws; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; //프로젝..
· 🚧
JUnit 테스트 중에 아래처럼 오류가 났다. error: variable name not initialized in the default constructor private final String name; 이유는 gradle 버전이 5로 올라가면서 lombok 을 프로젝트에 추가하는 방법이 달라졌기 때문이다. 아래처럼 수정해주면 해결된다. dependencies { ... //gradle 이 버전 4 라면 implementation 'org.projectlombok:lombok' //gradle 이 버전 5 라면 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' ... }
· 🚧
JUnit 테스트 실행 시 아래와 같은 에러가 났다. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > No tests found for given includes: [com.study.springbootaws.web.HelloControllerTest.returnHello](filter.includeTestsMatching) * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full..
· 🚧
프로세스란? 프로세스는 실행중인 프로그램을 말한다. 프로세스의 문맥(context) 특정 시점에서 프로세스가 어디서부터 어디까지 실행됐는지의 상태를 표현한 하드웨어 문맥이다. 아래 내용들을 모두 포함해 프로세스의 문맥이라고 한다. 현대 컴퓨터는 여러 프로세스가 time sharing을 하며 동시에 실행되기 때문에 다음 프로세스로 넘어갈 때 이전 프로세스의 문맥을 저장해놔야 다시 돌아왔을 때 정상적으로 실행할 수 있다. 하드웨어 문맥 다음에 실행할 명령어 주소를 담고 있는 Program Counter 와 각종 register의 정보 프로세스의 주소 공간 code, data, stack 에 어떤 내용이 들어 있는가. 프로세스 관련 커널 자료 구조 프로세스 관리를 위한 자료구조인 PCB(Process Cont..
· 🚧
프로그램들이 하드웨어 위에서 어떻게 돌아가는지... 컴퓨터시스템의 구조 컴퓨터 시스템은 두 가지 부분으로 이루어져 있다. 보통 호스트 컴퓨터라고 말하는 CPU 와 Memory 로 구성된 장치와 Disk, 모니터, 키보드 등 데이터의 입출력이 이루어지는 I/O device 이다. Memory Memory 는 CPU의 작업 공간이다. CPU는 메모리에서 매 clock time 마다 기계어(명령어)를 읽어서 작업을 수행한다. 사실 CPU가 하는 일은 이렇게 Memory 에서 명령어를 읽고 실행하는 것 뿐이다. 이 작업 결과는 Output device 인 모니터, 프린터로 출력되고 명령 수행에 필요한 데이터는 Disk, 키보드 등에서 입력받는다. Disk 는 작업 결과를 보관하는 Output device 역할도..
· 🚧
운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 연결시켜주는 소프트웨어이다. 좁은 의미로는 커널을 가리키는데 이 커널은 운영체제의 핵심 코어로 부팅 후 항상 메모리에 상주하는 부분을 말한다. 넓은 의미로는 이 커널을 포함해 주변 시스템 유틸리티, 윈도우즈를 설치했을 때 기본적으로 설치되어 있는 유틸리티들을 전부 포함해 말하기도 한다. 운영체제의 목표 운영체제는 사용자, 각종 소프트웨어와 하드웨어 사이에 위치하기 때문에 크게 두 가지 목표를 가진다. 1) 프로세서, 메모리, IO장치 같은 컴퓨터 시스템의 자원(resource)을 효율적으로 관리 예를 들어 메모리는 한정적인 공간을 가지기 때문에 n개의 프로그램을 돌릴 때 적절한 공간을 분배해줘야 한다. 이 뿐만 아니라 프로세스,..
purpplee
project.log