반응형

Spring 16

백엔드 개발자 기술 질문 리스트 - Spring Framework

스프링 프레임워크는 왜 생긴 것인가? 이전에는 서버사이드 처리를 직접 쓰레드, 소켓연결 등을 개발자들이 직접 처리했고, 개발자 마다 구현하는 방법이 달라 협업에 불편함이 많았다. 이러한 상황에서 개발 표준을 잡은 것이 Java Enterpricse Edition이다. 이 안에는 많은 스펙들을 담았고 개발자들은 그 스펙들을 구현하는 방법을 사용하기 시작했다. 그러나 구현하는 과정도 개발자 마다 여러 방법으로 나뉘게 되고, 개발자들은 정형화, 표준화된 방법을 찾기 시작했는데 이러한 배경에서 등장한 것이 Framework이다. 많은 종류의 Framework이 등장하고 자바 진영에서는 대표적으로 EJB가 나왔지만 분산환경 처리에 특화된 EJB는 너무 무겁고 불편한점이 많아 경량화된 Java Enterprise용..

Web Programming 2023.03.01

구글 로그인 쉽게 구현하기 3편 - 로그인 구현하기 (SpringBoot + Vue.js)

로그인 처리 플로우는 아래와 같다. 인가 코드 받기 -> 토큰 받기 -> 사용자 정보 가져오기 해당 글에서는 인가 코드 받기는 클라이언트 페이지에서, 토큰 받기와 사용자 정보 가져오기는 서버에서 처리할 예정이다. 위 플로우 대로 처리되기 위해 2개의 클라이언트 페이지와 1개의 API가 필요하다. 1. 클라이언트 페이지 구글 로그인 버튼 페이지 구글 로그인 후 Redirect되는 페이지 2. 서버 클라이언트 페이지에서 전달받은 인가코드를 통해 로그인 토큰 발급 및 유저 정보를 조회하는 API 구글 인증 구현 1. 인가 코드 받기 서비스 서버가 구글 인증 서버로 인가 코드 받기를 요청한다. 여기서 얻은 인가 코드는 로그인 토큰을 얻기 위해 사용된다. 클라이언트 페이지에서 구글 로그인창이 노출되고 구글 계정으..

Web Programming 2023.01.24

구글 로그인 쉽게 구현하기 2편 - 개발 환경 설정

개발환경 Spring Boot Vue.js MySQL 필요한 모듈 설치 Java 11 vue/cli 4.5.4 MySQL 8.0.18 Java, Vue, MySQL 버전은 위와 상이해도 무관하다. 1. Spring Boot 프로젝트 생성 1) Spring Boot 프로젝트 생성 아래 사이트에서 Spring Boot 프로젝트를 생성할 수 있다. https://start.spring.io/ 2) Gradle 설정 build.gradle 구글 로그인 서비스 구현에 필요한 모듈을 설정한다. implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-star..

Web Programming 2023.01.24

구글로그인 쉽게 구현하기 1편 - Google Developers 설정

구글 로그인 API 클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담된다. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있다.구글 로그인 API 흐름 구글 로그인의 흐름은 간단하다. 카카오, 네이버 로그인 모두 흐름은 동일하다. 리소스 오너(사이트)가 구글 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 네이버 API 서버에 넘긴다. 전달받은 정보를 가지고 구글 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 자세한 설명은 구글 개발자센터 A..

Web Programming 2023.01.24

네이버 로그인 쉽게 구현하기 3편 - 로그인 구현하기 (SpringBoot + Vue.js)

로그인 처리 플로우는 아래와 같다. 인가 코드 받기 -> 토큰 받기 -> 사용자 정보 가져오기 해당 글에서는 인가 코드 받기는 클라이언트 페이지에서, 토큰 받기와 사용자 정보 가져오기는 서버에서 처리할 예정이다. 위 플로우 대로 처리되기 위해 2개의 클라이언트 페이지와 1개의 API가 필요하다. 1. 클라이언트 페이지 네이버 로그인 버튼 페이지 네이버 로그인 후 Redirect되는 페이지 2. 서버 클라이언트 페이지에서 전달받은 인가코드를 통해 로그인 토큰 발급 및 유저 정보를 조회하는 API 네이버 인증 구현 1. 인가 코드 받기 서비스 서버가 네이버 인증 서버로 인가 코드 받기를 요청한다. 여기서 얻은 인가 코드는 로그인 토큰을 얻기 위해 사용된다. 클라이언트 페이지에서 네이버 로그인창이 노출되고 네..

Web Programming 2023.01.22

네이버 로그인 쉽게 구현하기 2편 - 개발 환경 설정

개발환경 Spring Boot Vue.js MySQL 필요한 모듈 설치 Java 11 vue/cli 4.5.4 MySQL 8.0.18 Java, Vue, MySQL 버전은 위와 상이해도 무관하다. 1. Spring Boot 프로젝트 생성 1) Spring Boot 프로젝트 생성 아래 사이트에서 Spring Boot 프로젝트를 생성할 수 있다. https://start.spring.io/ 2) Gradle 설정 build.gradle 네이버 로그인 서비스 구현에 필요한 모듈을 설정한다. implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-sta..

Web Programming 2023.01.22

네이버 로그인 쉽게 구현하기 1편 - Naver Developers 설정

네이버 로그인 API 클라이언트 입장에서 수많은 사이트의 모든 아이디 비밀번호를 기억하기는 쉽지 않다. 또한 서비스를 제공해주는 리소스 오너 또한 안전하게 보관하여야 하기 때문에 부담된다. 이런 문제를 해결하기 위해, 구글이나, 페이스북, 카카오 같은 큰 기업들이 로그인 연동 기능을 제공하고 있다. 네이버 로그인 API 흐름 네이버 로그인의 흐름은 간단하다. 리소스 오너(사이트)가 네이버 로그인 창을 클라이언트에게 보여주면, 클라이언트는 로그인을 시도하고, 동의 항목을 체크하여 네이버 API 서버에 넘긴다. 전달받은 정보를 가지고 네이버 API 서버는 인가 코드를 발급해주고 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 자세한 설명은 네이버 개발자센터 API 문서를 참고하자. https:..

Web Programming 2023.01.22

백엔드 개발자 면접 질문

이직을 준비하며 나름 숱한? 면접을 보러 다녔다. 비록 정말 원하던 곳에 입사는 못했지만 준비하는 과정에서 현실과 부족했던 부분을 알게되었다. 면접을 보며 공통적으로 자주 물어보는 면접 질문을 정리해보려 한다. 보통 이력서 상 명시한 기술에 대한 질문을 많이 받았다. 참고로 이직 준비한 분야는 Java / Spring 기반 웹개발 분야이다. 1. 기술 관련 기술과 관련된 부분은 개념도 물어보지만 그것보다 실무에 어떤식으로 적용했고 어떤 점이 좋았고 어떤 점이 어려웠는지를 더 많이 물어본다. 이 부분이 신입과 경력자 면접의 큰 차이 인 것 같다. 1) 정말 많이 물어보는 질문들 자바 프로그램 실행 과정 Spring DI 주입방식 (필드, setter, 생성자) Spring AoP 활용법 Spring Int..

면접 2022.09.08

SpringBoot 프로젝트 생성하기

SpringBoot 프로젝트 만들기? 정말 너무너무 무진장 쉽다. 1. spring initializr 사이트 접속 https://start.spring.io/ 2. project 설정 사이트에 접속을 완료했으면 위 이미지 처럼 프로젝트 설정에 관한 내용이 표시된다. 정말 너무 친절하고 깔끔하게 Project 유형, Boot 버전을 설정하는데 전혀 어려움이 없다. 필요에 따라 우측 Dependecies 영역에서 사용하고자하는 Dependency를 미리 설정해둘 수 있다. 3. 프로젝트 생성 화면 하단 GENERATE 버튼을 클릭하게 되면 프로젝트가 생성된다. 정말 매우 간단하네!? 딱 하나! 아쉬운 점은 위에 명시된 Spring Boot 버전 외에는 선택이 불가능한 듯 하다. 원하는 버전이 없을 경우 ..

Spring 2022.09.07

Spring openfeign Parameter 0 of constructor 에러 해결

Spring에서 서버간 통신하기 위해 spring-cloud-starter-openfeign을 많이 사용한다. @FeignClient(value = "kakaoAuth", url="https://kauth.kakao.com", configuration = {FeignConfiguration.class}) public interface KakaoAuthApi { @GetMapping("/oauth/token") ResponseEntity getAccessToken( @RequestParam("client_id") String clientId, @RequestParam("client_secret") String clientSecret, @RequestParam("grant_type") String grant..

개발경험기록 2022.08.20
반응형