본문 바로가기
728x90

전체 글143

김영한 님의 [스프링 핵심 원리 - 기본편] 강의 후기 강의 후기 이번에는 한 3주가량?에 걸쳐서 스프링핵심원리 - 기본편 강의를 들은 후기를 짧게나마 남겨보려고 합니다. Node.js로 백엔드 개발에 입문하고, 아무래도 대다수의 국내 기업의 백 엔드 개발자들이 사용하는 Spring 프레임워크에 대한 관심이 커져가서 관련 서적이나 강의들을 찾아보던 찰나에 인프런 강의 중에서 김영한 님의 스프링 강의 시리즈가 아주 좋다는 추천을 많이 보게 되어서 커리큘럼을 처음 접하게 되었습니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 대세를 따르세요! 자바 스프링 베스트셀러 우형 최연소 기술이사에게 배우는 스프링 완전 정복 🚩 [사진] 오픈 3개월 만에 수강생 7000+.. 2023. 1. 19.
BOJ - 10868번, 최솟값 문제 Segment Tree를 이용한 풀이 이번 문제는 주어진 N개의 정수들에 대해 M번의 구간 최솟값을 묻는 질의에 올바른 답을 반환하는 알고리즘을 구현하는 것이 목표입니다. 물론, 구간의 최솟값을 확인하기 위해 linear한 탐색 방식을 취할 수 있겠지만, 이렇게 하는 경우 - worst case 100,000(N의 최댓값) x 100,000(M의 최댓값) = 10^12번의 연산 위와 같이 연산의 횟수가 너무 커서 시간 초과를 결과로 받게 될 것입니다. 따라서 지난번에 정리한 세그먼트 트리의 개념을 구간 합을 구하는 대신 최솟값을 구할 수 있도록 변형해서 이번 문제를 풀이하는 방식을 채택해 봤습니다. https://kkkdh.tistory.com/entry/%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%E.. 2023. 1. 18.
BOJ - 3584번, 가장 가까운 공통 조상 [LCA] 이번에 풀이한 문제는 3584번 LCA(Lowest Common Ancestor), 최소 공통 조상 문제입니다. 문제 제목에서 알 수 있듯이, 트리 정보를 입력받은 후에 두 개의 노드의 최소 공통 조상을 찾으면 되는 문제입니다. 최소 공통 조상은 위 그림과 같이 부모 노드로 타고 올라갈 때, 가장 높이가 낮으면서, 두 개의 노드의 공통 조상인 노드입니다. 이러한 유형을 풀어봤던 것 같은데, 각 노드의 부모 노드 정보를 저장한 뒤에 이를 활용해야 한다는 부분까지는 생각이 났는데, 정확한 알고리즘이 생각나지 않아 다른 분들의 풀이를 참고했습니다. 더 효율적인 방법이 있겠지만, 일단 이 문제에 적용할 수 있는 가장 쉬운 풀이는 하나의 노드가 먼저 부모를 거슬러 올라가며, 방문 처리하며 탐색한 뒤에 두 번째 노.. 2023. 1. 17.
[Java] 예외 처리와 예외 발생과 관련된 개념 정리 오늘은 자바 기본 문법을 공부하며 알게 된, 예외 처리와 예외를 발생시키는 방법에 대해 공부한 과정을 정리해 보려고 합니다. 자바 예외 처리 자바는 코드 상에서 try, catch 구문을 이용해서 예외 처리 구문을 작성할 수 있습니다. 동작 방식을 간단히 정리하면, try 구문에 작성한 코드에서 에러가 발생하는 것을 감지하고, catch 구문에서 예외 처리를 다루는 구조로 동작합니다. catch 구문은 여러 개를 작성할 수 있는데, 이때 각각의 catch 구문에는 어떠한 에러를 다룰 것인지를 명시해 줘야 합니다. 그러면 각각의 오류에 맞는 catch 구문이 예외를 처리하는 구조를 띄게 됩니다. 위 코드와 같이 divide by zero 에러가 런타임에 발생하면, java.lang.ArithmeticExc.. 2023. 1. 12.
[Spring] 빈 스코프 알아보기 빈 스코프란? 지금까지 살펴본 빈은 스프링 컨테이너와 함께 생성되어, 스프링 컨테이너가 종료될 때까지 유지된다고 배웠다. 그러나, 이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다. 여기서 빈 스코프라는 말은 말 그대로 빈이 존재할 수 있는 범위를 의미한다. 스프링은 다양한 스코프를 지원한다. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작부터 종료까지 유지되는 가장 넓은 범위의 빈 스코프 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고, 이후에는 더 관리하지 않음. 매우 짧은 범위의 스코프이다. 웹 관련 스코프 request: 웹 요청이 들어오고 나갈 때까지 유지되는 스코프 session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 applicati.. 2023. 1. 7.
[Spring] 빈 생명주기 콜백 빈 생명주기 콜백 시작 데이터베이스 connection pool이나, 네트워크 socket처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화 및 종료 작업이 필요하다. 이번에는 스프링을 통해 이러한 초기화 + 종료 작업이 어떻게 진행되는지 예제와 함께 정리해 보자. 예시 설명) 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정하자. 실제로 네트워크에 연결되는 것은 아니고 단순히 문자열을 출력하는 코드이다. NetworkClient 객체는 애플리케이션의 시작 시점에 connect() method를 호출해서 연결을 맺고 애플리케이션이 종료되면, disconnect() method를 호출해서 연결을 끊는다. 이러한.. 2023. 1. 6.
728x90