April 10, 2023
OAuth 가 무엇이고, OAuth 플로우에 대해 설명해주세요. OAuth는 아이디나 패스워드를 이용하지 않고, 구글, 카카오와 같이 타서비스에 등록된 정보를 이용하여 인증, 인가를 하는 것을 의미합니다. OAuth를 하기 위해서는 먼저 해당 서비스에 인가 코드를 받을 리다이렉션 위치(URL)을 등록해주어야 합니다. 또한, 인가를 위해 Client Pub…
March 31, 2023
프로세스와 스레드의 차이에 대해 설명해 주세요 프로세스는 프로그램이 CPU로부터 자원을 할당받아 메모리에 적재되어 실행되는 독립적인 실행 단위 입니다. 스레드는 프로세스 내에서 실행되는 작은 실행 단위 입니다. 프로세스는 각각의 데이터 영역을 쉽게 침범 할 수 없지만, 스레드는 code, data, heap 영역을 공유합니다. 프로세스가 중단 되면 다른 …
March 30, 2023
List, Set, Map, HashMap의 차이에 대해서 설명해주세요. List, Set, Map, HashMap은 Collection Framework의 종류로서, 데이터를 여러개를 등록하고 관리할 수 있도록 돕습니다. 각각의 차이점은 다음과 같습니다. List는 같은 종류의 데이터 타입을 저장하여 관리할 수 있고, 데이터의 중복을 허용하며, 순서를 …
March 29, 2023
MSA란? MSA(Micro Service Arcitecture)란 어떠한 서비스를 하나로 묶어 관리하는 것이 아니라, 기능단위로 쪼개 배포/관리하는 아키텍처를 의미합니다. 보통은 여러개의 도커 컨테이너를 띄워서 관리하며, 더욱 관리를 쉽게 하기 위해 쿠버네티스를 이용해 컨테이너들을 관리합니다. 마이크로서비스 아키텍쳐의 장점은 확장성이 뛰어나며, 기능단위…
March 28, 2023
DI(Dependency Injection)에 대한 설명과 해당 기술의 장점에 대해 설명해주세요. DI란 멤버변수의 결정을 외부에서 정의하여 주입하는 방식입니다. 보통 내부 필드에 바로 주입하는 방법, 생성자를 통해 주입하는 방법, 세터를 통해 주입하는 방법이 존재합니다. DI를 사용하는 이유는 객체간 결합도를 감소시키기 위함입니다. 사용할 객체을 결정을…
March 27, 2023
객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고있는 원칙이나 키워드를 언급해주세요. 객체지향 프로그래밍이란, 현실의 사물의 특징을 가진 객체를 만들고, 그 객체 간의 상호작용을 통해 현실을 모방한 새로운 세계를 만드는 프로그래밍 기법을 말한다. 기존 프로그램의 순서대로 작성되던 절차지향 프로그래밍의 방식에서 벗어나, 하나의 프로그램이 부품 즉 객체…
March 14, 2023
0. 여는 글 K-Digital Training 내일배움캠프 스프링 과정은 프로젝트 기반 교육(Project Lead Educate)을 실행한다. 그 중 마지막 장식인 5주간 진행되는 최종프로젝트가 어제부로 마무리가 되었고, 살짝 아련해져서 프로젝트 과정을 톺아볼겸 회고를 해보려고한다. 긴 기간동안 진행되었기 때문에, 모든일들을 다 적을 순없고 스프린트 …
March 05, 2023
FACT-O1. 최적화 작업 및 테스트 작성을 했다. FEELINGS 모든 서비스의 테스트를 작성하려니, 막막했다. 이미 너무 사이즈가 커버린 프로젝트 규모 덕분에 어디서부터 손을 대야할 지 막막했다. FINDINGS 테스트를 작성하면서, 의도가 잘 기억이 나지않아서, 내부에 사용되는 동작관련 로직을 다시금 리마인드 하는 상황이 발생했다. 또한, 리팩토링…
March 03, 2023
효율적으로 더미데이터를 만들기 이제 도메인 배포도 했고, 점차 프로젝트 마무리를 향해 달려가고 있다. 하지만, 우리의 서비스가 실제로 구동되고 있는 서비스가 아니기 때문에, 더미 데이터들을 우선적으로 셋팅해야했다. 위치 기반으로 근처에 있는 레스토랑 목록을 가져오는 것이기 때문에, 최대한 많은 데이터를 수집하여야 고객 피드백도 받고 우리의 부하테스트도 진…
March 02, 2023
CI 를 뚫어라..! 오늘 CI를 진행하는 중 그동안 잘 돌아갔던 테스트가 막히는 일이 발생했다. 로그인, 로그아웃, Oauth 테스트와 같이 레디스에서 토큰을 잘 가져오는지 테스트를 하는 로직들이 있었는데, 알고보니, 로컬에서 돌릴 때는 레디스가 켜져있으니, 테스트가 원활하게 돌아갔지만, 테스트환경에서는 레디스를 돌릴 수 없기 때문에 발생하는 일이라고 …