정기간행물/daily 39

백엔드 CS 면접 대비 멘토링 (안재홍 멘토님)

Q. HTTP에 대해 아는 대로 설명 W. 인터넷에서 서버와 클라이언트 간의 통신을 하기 위해 정한 규약이 HTTP이다. - 무상태성(stateless) - HTTP method (GET, POST, PUT, DELETE, OPTIONS), status code (401, 409 ...) Q. HTTP 버전 별로 구분? - 보통은 1.1을 사용한다. 1.0은 흔히 보고 있는 헤더, 상태코드 추가가 됐습니다. 1.1은 keep-alive TCP는 신뢰성 있는 통신을 하기 위해 커넥션을 맺을 때 3 way handshake 과정이 있다. 매번 하기 어렵다. 기존 연결을 사용 2.0 동기식 처럼 처리하면 느리다. 멀티플랙스드 스트림 한 개로 동시에 여러개 보낸다. 그래도 환영 받지 못했다. 3.0 TCP라 느..

서버 환경의 변화 (변재영 멘토님 특강)

'어떻게 하면 서버를 잘 운영할 수 있을까?' 1. 도커가 등장하기 전 서버 운영 - 자체 서버 운영 - 서버를 설정하기 위해 많은 노력과 시간이 필요 - 성능이 좋은 걸 미리 구매하고 효율적인 사용을 위해 여러 애플리케이션을 설치 - 어려운 상태 관리 1.3 어려운 상태 관리 상태를 누가 언제 어떻게 변경했는지 알 수 있을까? 몇 개월 전에 만들었던 메뉴얼을 믿을 수 있을까? 똑같은 서버를 하나 더 만들 수 있을까? -> 재현 가능한 상태관리 (설정 관리 도구) 명령어를 통한 서버 관리를 지양 상태를 관리하는 코드를 이용하여 서버 관리 선언적 서버 상태 정의 가상 머신의 등장 하나의 서버에 여러개의 가상 서버를 설치할 수 있음 -> 각각의 가상 서버에 limit을 제한할 수 있음 Mutable vs I..

[슈코데이 세미나] 불가능을 가능으로 만드는 토스의 엔지니어링 직군

개발자 친구를 만나려고 연락을 했는데 해당 세미나에 참가한다고 해서 급하게 추가 신청해 참가했고, 일정상 첫번째 세션에만 참가할 수 있었다. 첫번째 세션을 시작하기 전 슈퍼코더의 해외 개발자 채용 서비스에 대해 간략히 설명해주셨다. 개발부터 분석까지 1주일이면 끝나는 반자동 시스템 발표자: 토스뱅크 프론트엔드 엔지니어 김선진 제품을 빠르게 만들기 위한 3가지 조건 - 제품 특성 - 자동화된 도구 - 개발 환경 1. 제품 특성 이벤트 페이지 등 빠르게 만들 수 있는 제품 2. 자동화된 도구 - UI 마크업: 디자인 시스템이 만들어주는 코드젠 활용 - 상태에 따른 복잡한 화면 분기처리: 선언적으로 흐름을 관리할 수 있는 useFunnel 라이브러리 - 로깅: Neo Logger class - A / B Te..

단축 URL 생성 (다담다)

https://dadamda.me 세상의 모든 URL, 다담다 내용에 따라 자동으로 북마크를 구성하는 신개념 컨텐츠 맞춤 스크랩 서비스, 다담다 dadamda.me https://blog.aaronroh.org/138 AWS 서버리스 단축URL 서비스 만들기 - 1 AWS의 인프라를 이용해 단축 URL 서비스를 만들어보려고 한다. 단축 URL 서비스는 https://google.com/fwarij4t3qt9pi3t3qtto3t3rzx22!31r31r/dafadfqefef와 같이 긴 URL을 my.ly/abcd로 축약하여 나타낼 수 있는 서비스이 blog.aaronroh.org 해당 블로그를 참고하며 AWS Lambda와 AWS S3를 이용해 빠르게 단축 URL을 생성하고자 한다. 해당 블로그에서는 랜덤으..

blob? Formdata? MultipartFile? (다담다)

어제 파일을 받아 보드 썸네일 이미지를 S3에 업로드할 수 있는 API를 만들었다. PR 리뷰 중 "파일을 고객의 스토리지에 몰래 저장하고 그걸 올릴 수 있는지?"에 대한 질문이 들어왔는데 텍스트 이외의 파일 형식에 대해 지식이 부족했기 때문에 관련 이슈를 해결하며 공부해보려고 한다. 먼저 우리는 스크린샷을 저장하기 위해 html2canvas라는 라이브러리를 사용한다. DOM을 매개변수에 넣어주면 css를 그려서 스크린샷을 찍은 것처럼 이미지를 만들어준다. html2canvas 객체를 Multipart formdata로 받아주기 위해서 어떤 변환이 필요할 지 고민해보자. https://developer.mozilla.org/en-US/docs/Web/API/FormData FormData - Web AP..

분산 서버 구축 이후 로그인 이슈 (다담다)

https://dadamda.me 세상의 모든 URL, 다담다 내용에 따라 자동으로 북마크를 구성하는 신개념 컨텐츠 맞춤 스크랩 서비스, 다담다 dadamda.me 현재 다담다 서비스에는 구글, 카카오톡 2가지 로그인을 사용하고 있다. Spring Security에서 제공하는 Oauth 로그인 API를 이용해 로그인을 구현했는데, 원래는 잘 작동되는 것이 분산 서버를 구축하고 난 뒤 로그인이 되지 않는 이슈가 발생했다. Spring Security는 기본적으로 세션과 쿠키를 가지고 동작된다. 서버가 분산 환경으로 바뀌면서 각 서버 메모리에서 갖고 있던 세션을 외부 공유 세션 저장소로 변경해야 한다. 외부 공유 세션의 종류는 이전 포스팅에 소개되어 있다. https://godhkekf24.tistory.c..

Spring Session

Spring Session은 사용자의 세션 정보를 관리하기 위해 제공된다. - HttpSession: RESTful API에 작동하도록 헤더에 세션 ID를 제공하는 것을 통해 어플리케이션 컨테이너 중립적인 방식으로 대체할 수 있다. - WebSocket: WebSocket 메시지 수신 시 HttpSession 활성 상태를 유지하는 기능을 제공한다. - WebSession: 어플리케이션 컨테이너 중립적인 방식을 Spring WebFlux의 Websession으로 대체할 수 있다. Spring Session을 통해서 해결할 수 있는 문제 세션은 일반적으로 서브의 메모리에 저장되므로 분산 환경에서 문제가 될 수 있다. 해당 문제를 해결하기 위해선 공유 세션 저장소를 구현해야 한다. Spring Session은..

보드 공유 URL 설계 (다담다)

https://dadamda.me/main 세상의 모든 URL, 다담다 내용에 따라 자동으로 북마크를 구성하는 신개념 컨텐츠 맞춤 스크랩 서비스, 다담다 dadamda.me 위 사이트는 현재 작업하고 있는 컨텐츠 맞춤 스크랩 서비스 다담다 사이트이다. 현재 스크랩을 저장하는 기능은 구현되어 있고, 스크랩을 보드에 담아서 공유하는 기능을 추가 구현하고 있다. 먼저 설계 조건을 파악해보자. 설계 조건 1. 보드는 공개가 기본이며 원한다면 비공개할 수 있다. 2. 비공개 보드에 접근하려고 한다면 토큰을 확인해 본인이면 입장시켜주고 타인이라면 권한이 없다는 문구를 보여준다. 만약 로그인되어 있는 상태가 아니라면 로그인 페이지를 띄워준다. 로그인하면 다시 판단한다. 3. 보드 비공개 상태에서 링크 공유를 하게 된..

한빛N MSA - #5 Re-Search

https://festa.io/events/4050 한빛N MSA - #5 Re-Search | Festa! Festa에서 당신이 찾는 이벤트를 만나보세요. festa.io 한빛미디어 오시는 길 감사하게도 저번 #3 코드리뷰 세션에 이어 #5 검색 방법론 세션에 초대받게 되어 참석하게 됐다. 발표자는 아직 정식 기업명이 정해지지 않은 전기차 충전 플랫폼 CTO 박순영님이다. 이제 막 개발을 하기 시작하는 주니어 개발자들이 성장하기 위해 기본이면서도 필수적인 검색 방법론에 대해 설명해주셨다. 발표에서 다루는 내용 1. 검색과 학습의 차이 2. 개발 지식을 얻는 채널 3. 검색 엔진 잘 활용하기 4. 질문과 키워드를 날카롭게 하기 5. 적용하기 6. 내 능력으로 내재화하기 검색 case #1, 무언가 사용법..