일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 카카오 알고리즘
- @Component
- python
- spring boot
- TypeORM
- 카카오
- C언어
- Spring
- git
- OpenCV
- 코테
- 가상면접사례로배우는대규모시스템설계기초
- 알고리즘
- @Autowired
- 시스템호출
- 컴포넌트스캔
- 카카오 코테
- 파이썬
- Nodejs
- C++
- 코딩테스트
- thymeleaf
- AWS
- nestJS
- nestjs auth
- 스프링
- nestjs typeorm
- 프로그래머스
- 해시
- 구조체배열
- Today
- Total
목록Spring (8)
공부 기록장 💻
인프런 - 토비의 스프링 부트 (이해와 원리) 참고 및 정리 Spring Boot 를 이용한 간단한 웹 MVC 개발을 해보며, 스프링 부트가 왜 만들어졌으며 스프링 프레임워크와의 차이점이 무엇이고 특징에는 무엇이 있는지 짚고 넘어가야 할 필요를 느껴 "토비의 스프링 부트 - 이해와 원리" 강의 소개 부분을 참고하여 Spring Boot가 정확히 무엇인지 정리해보고자 한다. 스프링 프레임워크란? 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로, 간단히 스프링(Spring) 이라 불린다. 동적인 웹 사이트를 개발하기 위해 여러 가지 서비스를 제공하고 있으며, 대한민국 공공 기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기..
인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 AOP (Aspect Oriented Programming) 이란? AOP란, Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라 불린다. 쉽게 말해 어떤 로직을 기준으로 공통 관심 사항(corss-cutting concern)과 핵심 관심 사항(core concern) 으로 관점을 분리하여 보고, 이 관점을 기준으로 각각 모듈화하는 것을 말한다. AOP가 필요한 상황 아주 간단한 예를 들어, 이전에 작성했던 회원 예제에서 모든 메서드에 대한 호출 시간을 측정하는 시간 측정 로직을 추가한다고 가정해보자. 각 메서드의 시간 측정 로직을 수행하는 코드를 각 컨트롤러의 각 메서드, 서비스의..
인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 스프링 DB 접근 기술 시리즈 정리 1. 순수 JDBC 2. JdbcTemplate 3. JPA 4. Spring Data JPA Spring Boot와 JPA만 사용해도 개발 생산성이 매우 증가하며, 작성해야 할 코드도 확연히 줄어든다. 이제 Spring Data JPA를 사용하게 되면, repository에 구현 클래스 없이 Interface 만으로도 개발을 완료할 수 있다. 반복 개발해온 기본 CRUD 기능도 Spring Data JPA가 모두 제공하므로, 개발자는 핵심 비즈니스 로직을 개발하는데만 집중할 수 있게 된다. 실무에서 관계형 데이터베이스를 사용한다면 spring data jpa는 이제 선택이 아니라..
프로그램을 개발 할 때, 각 메서드를 테스트하기 위한 테스트 케이스를 작성하는 것은 거의 필수적이라 할 수 있다. IntelliJ IDEA에서 Test Class를 만드는 shortcut 단축키 (Ctrl + Shift + T) 기능을 살펴보자. 아래와 같이 MemberService라는 이름의 회원 서비스 클래스 위에서 more actions 를 클릭하면 아래와 같이 Create Test 라는 기능이 목록에 포함되어 있다. 이를 누르면 선택된 클래스에 대한 test case 메서드를 포함하는 클래스를 만들어 준다는 설명이 나타나 잇다. Ctrl + Shift + T 단축키를 누르는 방법도 있다. 그러면 다음과 같이 Testing Library, Class name, Destination package, ..
인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 회원 서비스 개발 회원의 Domain과 Repository를 활용하여 비즈니스 로직 역할을 하는 회원 서비스를 작성해보자. Repository에는 직접 DB에 회원 정보를 저장하거나 어떤 특정 값을 이용해 회원을 찾는 등의 save(), findById(), findByName(), findAll() 등의 메서드를 포함하고 있었다. Service에는 보다 비즈니스적 로직을 갖는 메서드들을 작성하게 된다. Repository에는 조금 더 기계적인, DB에 단순하게 접근하도록 하는 메서드 이름을 지었던 반면, Service에 포함될 메서드의 경우 조금 더 비즈니스에 의존적인 이름을 짓게 된다. 회원 이름 중복이 되지 않..
인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 회원을 등록하고 조회하는 간단한 회원 관리 예제 백엔드 서버를 개발해보자. 단, 아직 데이터 저장소 (DB) 가 선정되지 않음을 고려한 가상의 시나리오를 배경으로 한 예제이다. 웹 어플리케이션의 기본 구조 우선 기본적인 웹 어플리케이션의 구조는 다음과 같이 도메인, 컨트롤러, 서비스, 리포지토리로 구성된다. Domain: 비즈니스 도메인 객체 (회원, 주문, 쿠폰과 같이 주로 DB에서 저장하고 관리하는 대상 객체) Controller : 웹 MVC의 컨트롤러, API를 만드는 경우 컨트롤러의 역할 Service : 핵심 비즈니스 로직 구현 (회원의 중복 가입 방지 로직 등) Repository: DB에 접근하여 도메..
클래스 내에서 getter와 setter을 어떻게 빠르고 쉽게 만들 수 있을까? 결론부터 말하자면 Alt + Insert 단축 키를 통해 빠르게 getter, setter 관련 메서드를 생성할 수 있다. 다음과 같이 Hello 라는 정적 클래스 내에 name이라는 String 변수를 만들었다. Alt + Insert 단축키 클릭 시 다음과 같이 자동으로 Generate 가능한 생성자, 메서드 들이 나타난다. Getter and Setter을 선택해보면 다음과 같이 나타난다. 이를 클릭하고 나면 아래와 같이 자동적으로 name 변수에 대한 getter, setter 메서드인 getName(), setName()이 자동적으로 추가된다. 이번에는 int형 number 변수를 선언한 뒤 getter와 sette..
인프런 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 정리 JAVA SDK 17과 IntelliJ IDEA 설치 본격적으로 프로젝트 환경 설정을 하기에 앞서, Java SDK 17과 IntelliJ IDE (Community 무료 버전) 설치를 완료하였다. Spring Boot 프로젝트 초기화 및 생성 Spring Boot를 기반으로 스프링 프로젝트를 만들 것이기 때문에, https://start.spring.io/ 에서 만들어보자. 필요한 라이브러리를 관리하는 Tool로는 Gradle로 설정하고, Spring Boot 버전은 3.0.1을 선택하였다. (SNAPSHOT, M1 같은 미정식 버전 제외한 최신 버전) Project Metedata 부분에 Group은 hello,..