전체 글 썸네일형 리스트형 2025년 3월 7일(금) 어떤 기능이 수행될 때 시간이 얼마나 소요되는지 확인하려면 아래와 같은 패턴?을 통해 확인할 수 있다.클라이언트가 서버로 요청을 하면 dispatcher servlet이 해당 요청을 처리할 컨트롤러를 찾고, 해당 요청을 위임한다.그리고 컨트롤러에서 해당 요청을 처리할 메서드를 호출했을 때 가장 처음에 수행되어야할 코드는 다음과 같다. long startTime = System.currentTimeMillis(); 위 코드를 통해 메서드의 핵심 로직?을 수행하기 전의 시간을 측정하여 변수(startTime)에 저장하고,메서드가 수행해야할 비즈니스 로직이 완전히 수행되고 난 뒤의 시간을 변수(endTime)에 담는다.종료시간에서 시작시간을 감산하면 로직 수행 소요 시간을 측정할 수 있다 → endTime -.. 더보기 2025년 3월 5일(수) 테스트 클래스 위에 @SpringBootTest 애너테이션을작성한다는 것은 테스트 환경에서 스프링이 작동한다는 것을 의미한다.테스트 작동시 스프링 컨테이너(IoC)가 만들어지고,필드에 빈들이 자동 주입되는(DI) 스프링 핵심 기능 사용이 가능해진다.DI(dependency, 의존성 주입)의 ex. @Autowired 애너테이션이 붙은필드, 생성자 또는 메서드가 있다면 스프링 컨테이너에서 해당 타입과일치하는 빈을(Bean) 찾아 스프링이 자동으로 주입해준다.// @Autowired 사용하기/* 1. 필드(Field) 주입 @Autowired 애너테이션 발견시 스프링 컨테이너에 UserService 타입 빈을 검색 발견시 해당 빈을 userService 에 주입 스프링 컨테이너.. 더보기 2025년 3월 4일(화) 데이터베이스 관리 시스템(DBMS, DataBase Management System) 에서 데이터베이스, 스키마, 테이블에 대한 개념 정리1. 데이터베이스는 데이터를 저장하고 관리하는 가장 큰 단위데이터가 저장되는 공간이며, 다양한 구조적 단위로 데이터가 관리된다. 다양한 구조적 단위에는 테이블, 뷰, 인덱스 등이 있다.2. 스키마는 데이터베이스 내에서 데이터를 논리적으로 구분하고, 조직하는 단위다.3. 테이블은 스키마 안에 속하며 실제 데이터가 저장되는 구조다. 데이터베이스라는 물리적 구조안에서 관련된 데이터들을 조직적으로 한 곳에 모아 관리하는 스키마가 존재하고,스키마 안에는 실제 데이터가 저장되는 테이블들이 존재한다고 이해하면 될 듯 spring boot 프로젝트 진행시 데이터베이스 관리 시스템 정.. 더보기 [스파르타코딩] 숙련 주차(2) 단방향 관계 설정 -- 음식 Entity에서만 User 객체에 대한 정보를 조회할 수 있다.@ManyToOne은 N대1(다대일) 관계를 맺어주는 애너테이션이다.음식 Entity와 고객 Entity가 N대1 관계라 가정할 때,(다른 종류의 음식) 여러 개의 음식을 한 사람이 주문할 수 있다?→ 고객 Entity의 입장에서 한 사람이 여러 개의 음식을 주문할 수 있다.인스턴스를 생각한다면 종류가 같더라도 생성 시점에 따라 서로 다른 객체로 식별,서로 다른 객체로 식별하는 같은 종류의 음식 Entity 인스턴스 여러 개가 한 사람에게 주문될 수 있다. 음식 Entity를 외래키의 주인으로 설정하려면→ 음식 Entity가 고객 Entity의 주키를 외래키로 갖는 상황 → 음식 Entity를 통해 해당 음식을 어.. 더보기 [스파르타코딩] 스프링 입문과 숙련 주차(1) 스프링이 관리하는 빈을(Bean) 개발자가 수동으로 등록하는 방법 빈 생성 과정: 스프링부트 기반 프로젝트가 동작할 때 컴포넌트 스캔이 이루어지고, 스프링이 @Component 애너테이션이 작성된 클래스를 발견하면해당 클래스로부터 객체를 생성하여 IoC 컨테이너에서 관리한다.그리고 프로젝트가 동작하는 동안 해당 객체가 필요한 곳에 스프링이 주입해준다. 빈을 수동으로 등록하는 경우기술적인 문제 → 스프링 프레임워크에게 해당 클래스가컨트롤러 계층임을 알리거나 서비스 계층임을 알리거나 레파지토리 계층임을 알릴 때@Controller, @Service, @Repository 애너테이션을 사용한다. 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋다. 예를 들면 비밀번호를 암호화할 때 사용.. 더보기 [스파르타코딩] 스프링 입문 주차(2) DTO DTO(data transfer object) 데이터 전송 및 이동을 위해 생성되는 객체를 의미하며,클라이언트에서 전송되는 데이터를 객체로 처리할 때 사용된다. 또 서버의 계층간의 이동?에도 사용된다.*서버의 계층간의 이동 → 컨트롤러TO(data transfer object) 데이터 전송 및 이동을 위해 생성되는 객체를 의미하며,클라이언트에서 전송되는 데이터를 객체로 처리할 때 사용된다.또 서버의 계층간의 이동?에도 사용된다. *서버의 계층간의 이동1. 서버의 대표 계층 ex. 컨트롤러, 서비스, 레파지토리 등2. A라는 클래스 객체에서 B라는 클래스 객체로 데이터를 보내줘야 될 때 dto 객체가 사용된다.dto는 순수한 (오래된, 옛날, 舊) 자바 객체다_pojo(plain old java o.. 더보기 [스파르타코딩] 스프링 입문 주차(1) 6개월의 kdt 개발자 과정을 수료하고,취업이 되지 않아 취업 준비를 하며 kdt 심화 과정에 참여하게 되었고,사전에 숙지해야할 강의들을 수강하면서 기록하게 되었다. 1. jdk: LTS(Long Time Support)_장기지원 버전인 JDK17 버전 다운받기└ .msi 확장자 실행한 후 설치할 때 Location 설정시 Folder name을 C:\Program Files\Java\jdk-17.0.13.11-hotspot\ 으로 지정 2. git- 명령 프롬프트에서 깃 설정 확인하기: git config --list 혹은 git config -l- --global 을 사용하여 전역으로 설정하기# 계정 설정# --global을 사용하여 전역으로 설정git config --global user.name .. 더보기 [스프링 입문] 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 https://start.spring.io 에서 스프링 부트 기반 스프링 관련 프로젝트 만들기 *스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 만들기└ https://start.spring.io → 스프링 부트 기반으로 스프링 관련 프로젝트를 만들어주는 사이트 project metadata 항목에서 group에는 기업의 도메인명을 작성하고,artifact 빌드된 결과물, 즉 프로젝트명을 작성한다. 스프링 부트 기반으로 스프링 관련 프로젝트가 생성되면압축을 풀고, 해당 폴더를 인텔리제이에서 불러온다.구조를 살펴보자면 src└ main └ java ------------------- 자바 언어를 사용해서 코드를 작성하는 곳 └ resources ----------- 자바 코드 파.. 더보기 이전 1 2 3 4 5 ··· 10 다음