본문 바로가기

전체 글

(199)
[OAuth In Action] Node.js로 OAuth 의 3주체를 구현해보자 (보호된 리소스, 클라이언트, 인증 서버) ㅇ안녕하세요 브로콜리입니다. 오늘은 OAuth2 In Action 의 ch3-ch5를 실습하며 OAuth2의 인증과정과 구현원리를 학습한 내용을 정리해보려 합니다.(모든 기반 코드는 OAuth2 In Action 실습 코드를 활용하였습니다.) OAuth2란?시스템의 어떤 구성요소가 다른 시스템의 어떤 구성요소에 대한 접근 권한을 얻을 수 있게 해주는 것입니다.즉, 특정 리소스의 접근 권한을 다른 누군가에게 위임하는 과정을 의미합니다.1. OAuth의 4요소 : 리소스 소유자, 보호된 리소스,  클라이언트,  인가서버 리소스 소유자: API에 대한 접근 권한을 가지고 있으며 그것을 위임할 수 있는 사람입니다.: 주로 자신의 정보를 프로그램에게 넘기는 유저로 대변됩니다. 보호된 리소스: 리소스 소유자가 접근..
점진적으로 IT 연합동아리 합격률 높이기(feat. 매쉬업, 프로그라피) 안녕하세요 브로콜리입니다. 오늘은 지난 상반기 기간동안 집중했던 IT 연합동아리 지원 경험에 대해 살펴보고자 합니다.최종적인 로그를 살펴보면 다음과 같습니다. (지원팀은 Spring - 서버 파트입니다.)1. 넥스터즈(24.11월 지원) - 서류 탈락2. DND (24.12월 지원) - 서류 탈락3. 디프만 (24.12월 지원) - 서류 합격 - 면접 탈락4. 매쉬업 (25.2월 지원) - 최종 합격5. 프로그라피 (25.2월 지원) - 최종 합격 3연속 탈락에서 2개의 연합동아리에 합격하기까지 어떤 과정을 겪었는지 다음 차례를 통해 회고하고자 합니다.1) 내가 원하는 연합 동아리 기준 세우기2) 3연속 탈락에서 발견한 서류 작성 인사이트들3) IT 연합동아리 면접 질문 모음 및 팁4) 내가 활동할 IT..
NamedParameterJdbcTemplate을 활용해 SaveAll 반복 쿼리를 최적화해보자 안녕하세요 브로콜리입니다. 오늘은 saveAll의 반복 쿼리 호출에 대한 고민과, NamedParameterJdbcTemplate을 통해 해결한 과정을 소개하고자 합니다.  Situation : saveAll의 쿼리 반복 호출 프로그라피 사전과제에서는 상황에 맞게 유저 수를 세팅하기 위해 외부 API로부터 유저정보를 받아 유저를 저장하는 초기화 API를 개발해야 했습니다. 명세를 보면 seed와 초기화할 유저량 quantity를 넣어주면 유저를 초기화하는 모습을 볼 수 있습니다.[구현 요구사항]1. 기존에 있던 데이터를 모두 삭제한다2. 외부 API에게 seed와 quantity를 넘겨 유저정보를 받는다3. 유저를 애플리케이션 DB에 저장한다.  문제 : API 응답속도가 너무 느리다 그러나, 구현을 완..
중앙대 UMC X GDG 연합 해커톤(청룡톤) 대상 수상 및 후기 안녕하세요 브로콜리입니다. 지난 2월 9-10일 간 중대 지부 UMC와 GDG가 연합하여 해커톤을 진행하였습니다. 저는 두 곳 모두 속해있지 않은 회원이었지만 다음과 같은 것들을 경험하고 싶어 백엔드로 지원하게 되었습니다.  0. 지원 동기- 1. 괜찮은 프론트엔드 크루가 있다면 디베이트 타이머 팀에 영입제안을 하고 싶다.- 2. 대학생들로 이루어진 동아리(ex) 멋사) 부원과 소통하며 내가 성장할 수 있는 환경인지 판단하고 싶다.- 3. 짧은 시간 내에 크레이티브를 최대한 폭발시키는 과정을 경험하고 싶다.  특히 해커톤은 제 버킷리스트 중 하나로 적혀있을 만큼 개발을 공부하기 시작한 순간부터 어느정도의 로망이 있었습니다. 처음 지원하게 되는 해커톤에 마음이 설레기도 하였습니다.1. 대회 일정과 팀 빌딩..
[디베이트 타이머 - 5차 스프린트] 2차 유저 테스트와 디자이너 합류 안녕하세요 브로콜리입니다. 디베이트 타이머 팀은 현재 Phase 1 - 의회식 타이머 기능 개발을 모두 마치고 현재 Phase 2 로 접어들고 있습니다.디자이너 분의 합류로 뷰 개선과 더불어 시간총량제 타이머 개발, 그리고 실 유저 모집을 위한 콜메일이 주요 태스크가 될 것 같습니다. 오늘은 2차 유저 테스트에서 나온 의견을 정리해보려 합니다. 1. 테스트 대상토론 강의를 진행하셨던 분을 대상으로 테스트를 진행하였습니다.: 약 1년 반 이상의 토론 강의 경험 보유: 토론 교육기관에서 학생들을 대상으로 토론 강의 및 자료 제작 경험2. 테스트 방식 테스트 방식은 지난 1차 UT와 동일한 방법으로 대상자가 토론 사회자가 되어 토론을 진행하는 방식을 유지했습니다. 다만 이번에는 키보드 조작 및 테이블 수정하기..
[디베이트 타이머 - 3차 스프린트] 1차 유저 테스트 안녕하세요 브로콜리입니다. 오늘은 프로젝트, 디베이트 타이머의 1차 User Test 에 대해 포스팅해볼까 합니다.지난 1월 25일을 기점으로 디베이트 타이머의 데모 버전이 완성되었습니다.  이에 따라 토론 강의 경험이 있는 강사 한분을 모시고 프로그램의 사용성 테스트를 진행하였습니다.  UT의 목적UT의 목적은 다음과 같은 포인트를 캐치하는 것이었습니다.- 프로그램이 실제로 토론 강의나 교육을 할 때 도움이 될 것 같은가?- 유저가 화면 구성 상 빠르게 사용법을 습득할 수 있는가?- 프로그램에 대한 전반적인 피드백(아쉬운 점이나 더 발전시킬만한 부분은 없는지) 수렴  UT 설계팀원들과 함께 8차 정기회의(1월 21일)에 미션을 설계하였고, 사용 유저가 사회자가 되어 타이머 프로그램을 활용해 토론을 진행..
[학습 테스트] 스레드풀 포화 정책(Saturation Policy) 알아보기 최근 알림 로직 비동기화를 진행하면서 스레드풀을 커스터마이즈하여 빈으로 등록할 일이 있었습니다. 이를 위해 스레드풀에 대해 학습하다 "코어 스레드풀과 대기 큐가 다 차면 요청을 어떻게 처리해야 할까?" 라는 의문이 든 적이 있습니다. 놀랍게도 ThreadPoolExecutor를 다음과 같은 포화상태에서 대처안을 선택할 수 있도록 4가지 정책을 제안하고 있습니다. 오늘은 학습테스트 작성을 통해 스레드풀의 4가지 포화정책을 눈으로 보며 이해해보고자 합니다.1. 스레드풀 기본 개념스레드풀이란 말 그대로 스레드를 풀링해놓는 것입니다. 풀링은 주로 생성 비용이 큰 자원을 미리 만들어놓음으로써 사용 시 반복적인 셋업 코스트를 줄이기 위해 사용됩니다. 이를 기반으로 해석해보면 매번 반복적으로 할당하는 스레드의 생성비..
[디베이트 타이머 - 3차 스프린트] Backend 기초 인프라 세팅하기 디베이트 타이머 3차 스프린트의 막바지에는 인프라 세팅 과정이 필요했습니다. 기존에 습득했던 인프라 관련 지식들을 복습할 겸, VPC를 세팅하는 처음부터 EC2 + RDS + https 세팅까지 작업해주었는데요. 오늘은 그 세팅과정에 대해 차근차근 소개해보고자 합니다. 목표 인프라세팅하고자 하는 인프라 환경은 다음과 같습니다. 가장 간소화한 인프라 환경 입니다. 그럼 디베이트 타이머 인프라 세팅의  A-Z까지의 과정을 소개해보겠습니다. 목차1. VPC - Subnet 설정하기    1-1) VPC 생성하기    1-2) Subnet 생성하기    1-3) 인터넷 게이트웨이 생성하기    1-4) 라우팅 테이블 연결하기 2. EC2 생성 및 EIP 설정    2-1) EC2 생성하기    2-2) EIP ..