분류 전체보기 212

TIL / 2022-03-02 스프링

[한 것] 유니톤 서버 템플릿 제작 완료 토이 프로젝트 API 추가 및 리팩토링 자산관리 서비스 서브 프로젝트 회의 완료 [배운 것] https://congsong.tistory.com/53 https://jeong-pro.tistory.com/195 @ControllerAdvice, @ExceptionHandler를 이용한 예외처리 분리, 통합하기(Spring에서 예외 관리하는 방법, 실 예외 처리 과정 프로그래밍에서 예외 처리는 아주 중요하면서도 아주 어렵다. 과하다할 만큼 상세하고 다양하게 예외를 잡아 처리해준다면, 클라이언트도 그렇고 서버도 그렇고 더 안정적인 프 jeong-pro.tistory.com 스프링 부트(Spring Boot) JPA 게시판 - 전역 예외 처리(Global Excepti..

💻 Backend/TIL 2022.03.03

전문가를 위한 스프링5 - 3장 정리(2)

필드 주입의 단점 1. 의존성을 추가하기가 쉽지만 단일 책임 원칙을 위반하지 않도록 주의해야 함. 많은 의존성이 생기면 클래스에 대한 책임이 커지므로 리팩터링 시에 관심사를 분리하기 어려움. 2. 의존성 주입의 책임은 스프링의 컨테이너에게 있지만, 필드 주입을 사용하면 어떤 타입의 의존성이 실제로 필요한지 의존성이 필수인지 여부가 명확하지 않을 수 있음. 3. 필드 주입은 final 필드에 사용할 수 없음. 4. 필드 주입은 의존성을 수동으로 주입해야 하므로 테스트 코드를 작성하기 어려움. @Component를 사용하면 기본적으로 @Service와 동일한 효과 가능 둘 중 어떤 어노테이션이라도 적용한 클래스는 애너테이션 기반 구성의 자동 검출과 클래스 경로 스캐닝의 대상이 됨 @Service는 @Comp..

TIL / 2022-02-25 스프링

[한 것] 객체지향의 사실과 오해 3장 읽고 정리하기 전문가를 위한 스프링 5 3장 읽고 정리하기 백준 알고리즘 풀이(그리디 알고리즘) [배운 것] DI에서 생성자 주입 외에 수정자 주입도 있다는 것을 알게 되었다. 그리디 알고리즘 풀이를 알게 되었음. [느낀점] 백준 solved.ac 골드3 달성! 플레까지 꾸준히 풀어야 겠다! 알고리즘은 풀면 풀수록 부족한게 너무 많은 것 같다.. [할 것] 객체지향의 사실과 오해 4장 읽고 정리하기 토이 프로젝트 에서 Oauth 적용하기 & 서버 등록 전문가를 위한 스프링 3장 마저 읽기

💻 Backend/TIL 2022.02.26

백준 1931번: 회의실 배정 - C++

[문제] https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net [풀이] 그리디 알고리즘 [코드] #include using namespace std; int n; pair s[100005]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i=0; i> s[i].second >> s[i].first; } sort(s, s+n); int ans=0; int t=0; for(int i=0; i s[i].second) continue; ans++; t = s[i].first; } cout

백준 2217번: 로프 - C++

[문제] https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net [풀이] 그리디 알고리즘 [코드] #include using namespace std; int n; int w[100005]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i=0; i> w[i]; sort(w, w+n); int ans=0; for(int i=1; i

백준 1026번: 보물 - C++

[문제] https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net [풀이] 그리디 알고리즘 [코드] #include using namespace std; int a[105], b[105]; int n; int main(void){ ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i=0; i> a[i]; for(int i=0; i> b[i]; sort(a, a+n); sort(b, b+n); int..

전문가를 위한 스프링5 - 3장 정리

본 글은 스터디 내에서 전문가를 위한 스프링5를 읽고 정리한 글입니다. 3.1 Ioc와 DI 의존 객체: 의존성이 필요한 컴포넌트 -> Ioc에서는 대상(target)이라고 함 IOC : 의존성 주입(DI), 의존성 룩업(DL)로 나눌수 있음. 3.2 Ioc와 종류 의존성 룩업: 컴포넌트 스스로 의존성의 참조를 가져와야 함(의존성 풀, 의존성 룩업) 의존성 주입: Ioc 컨테이너가 컴포넌트에 의존성을 주입함(생성자, 수정자 의존성 주입) 3.2.1 의존성 풀 필요에 따라 레지스트리에서 의존성을 가져오게 됨 package com.example.prospring5; import org.springframework.context.ApplicationContext; import org.springframewor..

객체지향의 사실과 오해 - 3장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 1. 추상화를 통한 복잡성 극복 추상화는 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 추상화는 두 차원에서 이뤄진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고, 차이점은 버리는 일반화를 통해 단순화된다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 2. 그룹으로 나누어 단순화하기 명확한 경계를 가지고 서로 구별할 수 있는 구체적인 사람이나 사물을 객체지향 패러다임에서 객체라고 한다. 3. 개념 객체지향 패러다임의 중심에는 ..

객체지향의 사실과 오해 - 2장 정리

본 글은 스터디 내에서 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향을 읽고 정리한 글입니다. 1. 객체지향과 인지 능력 객체지향 패러다임은 인간이 인지 가능한 다양한 객체들이 모여 현실 세계를 이루는 것처럼 소프트웨어의 세계 역시 인간이 인지할 수 있는 다양한 소프트웨어 객체들이 모여 이뤄져 있다는 믿음에서 출발한다. 객체지향과 현실의 유사성은 여기까지이며, 객체지향 패러다임의 목적은 현실세계를 기반으로 새로운 세계를 창조하는 것이다. 2. 객체 그리고 이상한 나라 이상한 나라의 앨리스 이야기를 차용해서 객체의 특징을 서술하였다. 1. 앨리스는 상태를 가지며 상태는 변경 가능하다. 2. 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. 행동의 결과는 상태에 의존적이며 상태를 이용..

TIL 2022-02-22 / 스프링

[한 것] 객체지향의 사실과 오해 1장 읽고 정리하기 데브싱크 프로젝트 쪽지 전송 부분 TDD 작성하기 [배운 것] webmvctest를 이용한 TDD 작성법 @RunWith(SpringRunner.class) 테스트를 진행할 때 Junit에 내장된 실행자 외에 다른 실행자를 실행시킵니다. 여기서는 SpringRunner라는 스프링 실행자를 사용합니다 즉, 스프링부트 테스트와 Junit 사이에 연결자 역할을 합니다. @WebMvcTest 여러 스프링 어노테이션 중에서, Web(Srpign MVC)에 집중할 수 있는 어노테이션입니다. 선언할 경우 @Controller, @ControllerAdvice 등을 사용가능 여기서는 컨트롤러의 선언 때문에 사용합니다. @Autowired 스프링이 관리하는 (Bean..

💻 Backend/TIL 2022.02.22