728x90

백엔드 면접 7

Spring MVC Model

1. org.springframework.ui.Model: 사용 시점: Controller에서 View로 데이터를 전달할 때 사용. 메서드의 매개변수로 선언하여 데이터를 추가하거나 수정할 수 있음. 설명: Controller에서 View로 데이터를 전달하기 위한 인터페이스. addAttribute(String attributeName, Object attributeValue) 메서드를 사용하여 데이터를 추가. 장단점: 장점: 간단하게 데이터를 전달할 때 사용하기 편리. 단점: 유연성이 상대적으로 부족함. @Controller public class MyController { @GetMapping("/example") public String example(Model model) { model.addAtt..

IT/개발자 면접 2023.12.17

Spring Security 암호화 방식

Spring Security는 다양한 암호화 방식을 지원하며, 주요한 몇 가지 방식과 각각의 특징을 살펴보겠습니다. 1. BCrypt (Recommended): 장점: 안전한 해시 함수를 사용하여 보안성이 높음. Salt(솔트) 값을 사용하여 레인보우 테이블 공격에 대비함. 단점: 연산이 높아 시간이 오래 걸릴 수 있음. // Spring Security에서 BCrypt 사용 예제 String password = "user_password"; BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); String hashedPassword = passwordEncoder.encode(password); 2. SHA-256: 장점: 빠른 연산..

IT/개발자 면접 2023.12.16

Redis 란?

Redis는 오픈 소스인 인메모리 키-값 데이터 구조 저장소로, 다양한 사용 사례에 적합한 빠르고 가벼운 솔루션입니다. 주로 캐싱, 세션 관리, 메시지 브로커, 리더보드 등 다양한 용도로 사용됩니다. Redis의 특징: 인메모리 데이터 저장: 데이터를 메모리에 저장하여 빠른 읽기/쓰기 속도를 제공합니다. 다양한 데이터 구조 지원: 문자열, 해시, 리스트, 셋, 정렬된 셋 등 다양한 데이터 구조를 지원합니다. 지속성 옵션: 스냅샷 또는 AOF(append-only file) 파일을 사용하여 지속성을 확보할 수 있습니다. 고성능: 주로 메모리에 데이터를 저장하고 있기 때문에 빠른 응답 속도를 제공합니다. 분산 확장성: 클러스터링을 통해 데이터를 분산하고 확장할 수 있습니다. 사용 사례: 캐싱: 데이터베이스나..

IT/개발자 면접 2023.12.15

마이크로서비스(Microservices)

마이크로서비스(Microservices)는 소프트웨어 개발 및 배포를 위한 아키텍처적인 접근 방식 중 하나입니다. 전통적인 몰리식(Monolithic) 아키텍처와 대비되며, 여러 작은 독립적인 서비스들이 협업하여 전체 시스템을 구성합니다. 이러한 아키텍처는 다음과 같은 특징을 가지고 있습니다: 특징: 독립적인 서비스: 각 마이크로서비스는 독립적으로 배포, 업데이트, 확장이 가능한 작은 서비스 단위로 구성됩니다. 다양한 기술 스택: 각 마이크로서비스는 필요에 따라 다른 언어나 기술 스택을 사용할 수 있습니다. 분산 데이터 관리: 데이터가 각 서비스에 속하며, 데이터 소유 및 관리가 서비스 내부에서 이루어집니다. 분산 개발 및 배포: 각 마이크로서비스는 독립적으로 개발되어 배포되기 때문에 팀 간의 협업이 용..

IT/개발자 면접 2023.12.14

서비스 개발 요청을 받았을 때 업무 진행

1. 기획서 이해: 기획서를 자세히 읽고 이해합니다. 필요 시 추가 질문을 기획자나 다른 팀과 협의하여 명확한 이해를 얻습니다. 2. 시스템 아키텍처 및 데이터베이스 설계: 필요한 시스템 구조와 데이터베이스를 설계합니다. 엔터티, 관계, 클래스 다이어그램 등을 작성하여 시스템을 시각화합니다. 3. 기술 스택 및 도구 선택: 프로젝트에 적합한 기술 스택과 도구를 선택합니다. Spring Framework의 어떤 모듈을 사용할지, 데이터베이스는 어떤 것을 사용할지 등을 결정합니다. 4. 개발 환경 구축: 프로젝트를 위한 개발 환경을 구축합니다. 개발 도구, 데이터베이스, 버전 관리 시스템 등을 설정합니다. 5. 코드 작성: 기능에 따라 필요한 클래스와 메서드를 작성합니다. 각 클래스와 메서드에 주석을 달아 ..

IT/개발자 면접 2023.12.12

Spring Filter와 Interceptor

Spring Filter와 Interceptor 1. Spring Filter: 특징: Servlet 기반: Spring Filter는 Servlet 기술에서 파생된 기능으로, Servlet Container 레벨에서 동작합니다. Request/Response 처리: 클라이언트의 요청(Request)이 서버에 도착하기 전에 처리되는 필터로, 주로 Request와 Response를 수정하거나 검사하는 용도로 사용됩니다. Web.xml 또는 Java Config에서 설정: web.xml 파일이나 Java Config에서 설정하며, URL 패턴을 기반으로 동작합니다. 장점: 최하위 레벨에서 동작: Filter는 Servlet Container 내부에서 동작하므로 모든 요청에 대해 동일한 방식으로 처리할 수 있..

IT/개발자 면접 2023.12.11

Spring Framework 을 사용하는 이유는 ?

Spring Framework 을 사용하는 이유는 ? 모듈성 및 확장성: Spring은 모듈 기반으로 구성되어 있어서 필요한 모듈만 사용할 수 있습니다. 이는 경량화된 애플리케이션부터 기업급 애플리케이션까지 다양한 환경에 적용할 수 있음을 의미합니다. 확장성이 뛰어나며, 필요한 기능들을 쉽게 추가하거나 변경할 수 있습니다. 의존성 주입 (Dependency Injection): Spring은 의존성 주입을 통해 객체 간의 결합도를 낮춥니다. 이는 코드의 가독성을 높이고 유지보수성을 향상시킵니다. 테스트가 용이하며, 유연하게 컴포넌트를 교체하거나 확장할 수 있습니다. AOP (Aspect-Oriented Programming): 관점 지향 프로그래밍은 횡단적인 관심사들을 모듈화하여 코드의 재사용성과 유지보..

IT/개발자 면접 2023.12.09
728x90