목록전체 글 (73)
delpho
1. Servlet Filter와 Spring Interceptor의 차이는 무엇인가요? # Filter 프론트에서 Dispatcher Sevlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능 DS는 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것임! 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너에 의해 관리가 되는 것이고(스프링 빈으로 등록은 된다), 디스패처 서블릿 전/후에 처리하는 것 필터를 추가하기 위해서는 javax.servlet의 Filter 인터페이스를 구현(implements)해야 하며 이는 다음의 3가지 메소드를 가지고 있다. init 메소드 doFilter 메소드 destroy 메소드 ..
문제 자체는 어렵지 않았는데 어떤 방식으로 풀어야할지 고민했던 문제! 어떤 자료구조를 써야할지 고민했는데, 결국 다른 블로그를 참고했다. Map은 Key가 중복되서 put이 되면 마지막에 들어온 value가 저장되는 점을 활용했다. 여기서, key에 uid값을, value에는 닉네임을 저장한다! LinkedList를 이용하여 일단은 채팅로그를 그대로 남긴다. 그 후, LinkedList의 값을 하나씩 빼서 "님"의 idx값을 알아낸 후 그 앞의 uid를 얻어온다. 얻어온 uid값을 활용하여 Map에 있는 닉네임을 얻어와 닉네임을 변경한 후, answer에 idx를 증가시키며 저장! import java.util.*; class Solution { public String[] solution(String[..
1. DI 종류는 어떤것이 있고, 이들의 차이는 무엇인가요? 위의 그림에서는 DI의 종류가 저렇게 3가지로 되어있다. 근데.. 조금 찾아보니 분류가 조금 다르게 되있는거같아서 찾아본 내용으로 다시 정리를 해보려한다. DI (Dependency Injection)의 종류는 크게 3개가 있다. 1. 생성자 주입 방식 (Constructor Injection) 말 그대로 생성자를 통해 의존성 주입 (DI) 가장 권장되는 주입 방식 Lombok 사용하면 간단하게 사용 가능 (@AllArgsConstructor) 객체의 불변성 확보 (final 사용 가능) 의존 관계를 주입하지 않으면 Controller 객체 생성 불가 순환 의존성 파악 가능 Bean 객체를 생성하는 시점에 생성자의 파라미터 빈 객체를 찾아 먼저..
1. Spring DI/IoC는 어떻게 동작하나요? # IoC 객체 지향 언어에서 Object간의 연결 관계를 런타임에 결정하는 것 일반적으로는 객체 생성이 필요한 위치에서 개발자가 직접 new를 통해 생성 런타임이 아닌 컴파일 시 결정됌 # DI 객체간의 의존관계를 의존 관계를 컨테이너가 설정할 수 있도록 지정해주는 방식 객체간의 연결 관계가 느슨해짐 (기존의 생성 방법은 결합도가 높음) 2. Spring Bean이란 무엇인가요? sclass를 생성하고 new를 통해 생성한 객체가 아닌, Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 부름 주의! java Bean이랑은 다름 java bean jsp에서 주로 사용되는 것, 데이터 전달을 위해 사용 (DTO 랑 비슷한 역할) 클래스는 ..
카카오 계정을 통해 손쉽게 로그인을 할 수 있는 기능을 카카오에서 제공중이다. 사용자로서 되게 간편했던 기억이 있어서 나중에 꼭 구현해보고 싶다고 생각했었는데, 구현이 생각보다 어려웠다 ㅎㅎ.. 로직을 이해하는데에 꽤 고생을 했기 때문에 나중에 보더라도 기억을 하기 위해서 정리를 시작한다! -- 들어가기 전.. https://developers.kakao.com/docs/latest/ko/kakaologin/common kakao developers 사이트에서 카카오 로그인에 대해 설명이 나와있다. 카카오 로그인에 대한 로직을 사진 참고하여 간단하게 적어보자면, 1. 카카오 로그인을 통해 인가 코드 얻기 2. 헤더 설정 + 쿼리 (인가코드 등)을 통해 토큰 발급 3. (필요하다면) 카카오 계정에 대한 정..
문제가 조금 어려웠다.. 제 생각에, 이 문제에서 떠올려야 할 중요한 부분은 4방탐색 (인접한 부분이 다르다면) 행, 열 탐색 (최대 길이의 연속된 문자 길이를 체크 후 max에 저장) 이라고 생각합니다. 하단은 저의 코드이며, 질문, 태클 환영입니닷! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class BJ_3085_사탕게임 { public static void main(String[] args) throws NumberFormatException, IOExcep..