반응형

분류 전체보기 36

백엔드 개발자 면접 질문

이직을 준비하며 나름 숱한? 면접을 보러 다녔다. 비록 정말 원하던 곳에 입사는 못했지만 준비하는 과정에서 현실과 부족했던 부분을 알게되었다. 면접을 보며 공통적으로 자주 물어보는 면접 질문을 정리해보려 한다. 보통 이력서 상 명시한 기술에 대한 질문을 많이 받았다. 참고로 이직 준비한 분야는 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

Vue.js CORS 설정하기

API를 연동하다보면 CORS를 자주 볼 수 있다. (프로젝트를 새로만들 때 마다 보는듯.. 😂) 서버쪽에서도 CORS 대응을 해주어야하지만 프론트쪽에서도 대응이 필요하다. Vue.js CORS 설정 1. vue.config.js 파일 생성 프로젝트 root 경로에 vue.config.js 파일을 생성해준다. package.json 파일과 동일한 경로이다. 2. proxy 설정 proxy설정을 왜 해주어야 할까? CORS는 요청하는 주소와 나의 주소 도메인이 달라서 발생한다. 즉, API주소와 웹페이지 주소가 달라서 발생하고 요청하는 주소와 나의 주소가 동일해야 정상적으로 응답받을 수 있다. 이러한 문제를 해결하기 위해 proxy설정을 해주어 api주소로 가는 요청을 웹페이지 주소로 가는 것처럼 바꿔서 ..

개발경험기록 2022.08.20

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

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

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

Web Programming 2022.08.17

카카오 로그인 쉽게 구현하기 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 2022.08.17

카카오 로그인 쉽게 구현하기 1편 - Kakao Developers 설정

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

Web Programming 2022.08.16

기술 면접 정리 - Spring

기술 면접 정리 - Spring ⭐⭐⭐ Spring FrameWork 자바의 오픈소스 애플리케이션 프레임워크 중 하나입니다. 스프링의 기본철학은 특정 기술에 종속되지 않고 객체를 관리할 수 있는 프레임워크를 제공하는 것 입니다. 스프링 컨테이너로 자바 객체를 관리하면서 DI와 IoC를 통해 결합도를 낮추게 됩니다. ⭐⭐⭐ DI (Depedency Injection) DI는 의존성 주입을 의미합니다. 객체간의 의존관계를 미리 설정해두면 스프링 컨테이너가 의존관계를 자동으로 연결해줍니다. 이렇게 되면 직접 의존하는 객체를 생성하는 일이 없기 때문에 결합도가 낮아지는 장점이 있습니다. 의존성 주입은 생성자 주입, 필드 주입, 세터 주입의 3가지 방법이 있는데 Spring에서 가장 권장하는 의존성 주입 방법은 ..

Spring 2022.08.06

백엔드 개발자 기술 면접 후기

지원한 회사는 게임쪽에서 유명한 회사이다. 지원한 부서는 게임 개발은 아니고 홈페이지나 게임 사용자 및 구성원들이 사용할 서비스를 개발하는 부서였다. 원티드를 통해 지원했고 서류 전형에 합격한 후 코딩테스트를 거쳐 1차 기술 면접을 보게 되었다. 면접 때 까지 약 1주일 정도의 여유가 있었고 면접은 대면이 아닌 ZOOM으로 화상면접을 보게 되었다. 코로나가 재유행 해서 그런 것 같다.. 개인적으로 이상하게도 대면면접보다 화상면접이 더 부담된다. 간혹 싱크가 안맞을 때 혹은 질문을 잘 이해를 못하거나 반대로 면접관님이 나의 답변을 이해 못했을 때의 상황이 조금 난감하다. 어찌됐든 화상면접으로 진행하게 되었고 약속한 시간에 ZOOM에 접속하여 면접을 시작했다. 다른 면접들과 비슷하게 자기소개, 그리고 경험했..

면접 2022.08.06

bash: ll: command not found 해결 방법

리눅스에서 파일 목록을 조회할 때 사용하는 ls 명령어 대신 숨겨진 파일과 권한, 소유자 등의 정보를 ll 명령어로 확인 가능하다. ll KEY-vvsungho.pem -bash: ll: command not found 엇!? ll 명령어를 찾을 수 없다고 나온다.. ll명령어가 동작하지 않을 때 아래와 같이 alias를 지정해주는 작업이 필요하다. echo "alias ll='ls --color=auto -alF'" >> ~/.bashrc source ~/.bashrc 다시 ll 명령어로 파일정보를 조회해보자 ll KEY-vvsungho.pem -rw-r--r--@ 1 yunseongho staff 1678 6 5 19:35 KEY-vvsungho.pem 오! 이제는 파일의 정보가 잘 노출된다 😊

서버 2022.06.05
반응형