Dev_articles 9

[API 설계] DELETE request 요청/처리/응답에 관한 소소한 고민

👨🏻‍💻 들어가며 최근 제한된 시간 안에 RESTful API를 설계하고 구현해야 했습니다. 그 와중에 아직 잘 숙지가 되지 않았는지 묘하게 위화감이 있는 부분이 있었는데요, 바로 DELETE 요청 메서드의 처리 정책입니다. 단순히 예제 수준에서 DELETE 요청 메서드로 자원 삭제를 요청하는 것은 정말 쉽지만, 아래 상황에서 고민되는 지점들이 있었습니다. DELETE 요청한 클라이언트의 권한을 검사해야하는 상황에서, 인증/인가에 필요한 정보를 어디에 담아서 요청해야할까? Soft delete 하는 상황에서 soft delete 여부를 관리하는 컬럼 이름은 무엇이 적절할까? 그리고 자원을 삭제하는 것이 아니라 플래그를 바꾸는 것이니 메서드는 PATCH 메서드를 써야하는 걸까? DELETE 요청에 대해 응..

[로그인?] 다양한 인증 수단들

들어가며 안녕하세요! ✋ 문득 로그인이 무엇인지 제대로 알고있지 못하다는 생각이 들었습니다. 관련 지식을 구조화할 겸 가볍게 포스팅해봅니다! 👨🏻‍💻 로그인은 무엇일까? In computer security, logging in (or logging on, signing in, or signing on) is the process by which an individual gains access to a computer system by identifying and authenticating themselves. - Wikipedia 로그인은 자원에 접근할 수 있는 권한을 획득하기 위해 인증과 인가를 받는 절차입니다. 로그인을 쉽게 접할 수 있는 웹 서비스를 예로 들어봅시다. 웹 서비스는 보통 클라이언트가..

[Backbone js] 백본 튜토리얼2 - Todo 만들기

Todo를 구현하며 Backbone.js을 익혀봅니다. 들어가며 Backbone.js 튜토리얼1에서 말씀드렸듯 Todo 처럼 간단한 애플리케이션을 만들면서 동시에 개념을 확인하는 것이 학습에 효과적입니다. 마침 todoMVC에는 Backbone으로 Todo 애플리케이션을 구현한 예제가 있습니다, 간단한 애플리케이션이지만 바인딩, 모델 데이터의 지속성 유지, 라우팅, 그리고 템플릿 렌더링 같은 Backbone의 핵심 기능들을 확인할 수 있습니다. 본 튜토리얼은 이 todo 애플리케이션을 단계별로 구현하는 식으로 진행해보겠습니다. 이미 자바스크립트 프레임워크에 익숙하신 분들은 이 튜토리얼을 확인하실 필요 없이 그냥 todoMVC의 소스 코드를 주석과 함께 확인하는 식으로 학습이 가능하실 거에요 👍 ES6 문..

[Backbone js] 백본 튜토리얼1 - 개념잡기

Backbone.js을 시작하는데 도움을 드리기 위한 튜토리얼입니다. 들어가며 42seoul 과제 중 ft_transendence 프로젝트의 요구사항에는 프론트엔드를 Backbone.js(이하 Backbone)로 구현하라는 내용이 있습니다. ​Backbone은 미니멀하게 구성되어 있어서 학습자체가 어렵지는 않았어요. 그러나 아무래도 react나 vue 같은 프레임워크에 비해 학습 소스가 적어서 아쉬웠습니다. 언제나처럼 '공식문서 보면 되겠지?' 하고 Backbone.js.org 공식문서를 찾아봤지만 getting start 파트에는 개념 설명만 있고 뭔가.. 제가 바랬던 '따라치며 익히는' 설명이 없더라구요 🧐 그래서 Backbone을 처음 다뤄보시는 분들께 도움드리기 위해 간단한 튜토리얼을 작성해봤습니..

[Blog] 티스토리에 자동 목차(TOC) 추가하기 feat. Odyssey skin

Odyssey skin tistory 블로그에 TOC를 추가하는 방법을 안내합니다. Odyssey 스킨 유저라면 복붙만 잘 하시면 됩니다🤗 (2021년 현재 블로그 스킨은 #1으로 변경된 상태입니다. 참고해주세요!) 들어가며 티스토리 블로그를 만들면서 가장 넣고 싶었던 기능이 있었는데, 바로 '본문 옆에 삽입되는 소제목 목차 기능'이었습니다. 보통 TOC(Table Of Contents) 기능이라고 부릅니다. TOC가 있으면 글의 구조를 한 눈에 볼 수 있고, 목차를 누르면 필요한 내용을 바로 찾아갈 수 있습니다. 글을 읽는 입장에서는 목차가 없는 것보다 훨씬 좋은 경험을 하게 되죠. 티스토리에 TOC를 적용하려면 직접 스킨을 수정해줘야합니다. 검색해보면 친절하게 코드를 복붙만 하면 바로 적용가능하게끔 ..

[Hammerspoon] typora도 vim처럼 쓰고 싶다.. vim keymap 설정기!

hammerspoon을 통해 vim keymap을 설정한 과정을 공유합니다. 들어가며 vim에 편해지다 보면 딱히 vim을 쓸 때가 아니더라도 vim keymap을 쓰고 싶다는 생각이 들기 마련입니다. 귀찮게 마우스로 손을 옮길 필요 없이 키보드로 다 처리해버리는 게 생각보다 편하기 때문인데요, 이런 니즈를 공략하는 도구들이 이미 충분히 많습니다. 가령 제가 쓰고 있는 도구들만 해도 3개나 됩니다. vimium : 크롬 브라우저 확장 앱입니다. 웨일 브라우저에서도 호환됩니다. 진짜 최고.. vimac : macOS 를 naviagate 할 수 있도록 도와줍니다. VScodeVim: vscode의 vim emulator 입니다. vscode 상에서 쉽게 설치 가능합니다. 그런데 문득 typora나 티스토리..

[Hammerspoon] esc 키로 편하게 한영 변환하기 for vim

hammerspoon으로 esc키에 한영변환 기능을 맵핑한 과정을 소개합니다. 들어가며 이 글을 읽으시는 분과 마찬가지로 저도 vim을 참 좋아하는데요, vim으로 한글을 입력하다보면 종종 불편한 상황과 마주칩니다. 대표적으로 한글로 입력하다가 저장하고 나가려고 할 때 `:wq` 대신 `:ㅈㅂ`가 입력되는 상황이 자주 거슬리네요. 위 상황이 발생하면 아래 과정이 반복됩니다. 뭔가 쎄함을 느끼며 화면을 확인한다. 아니나다를까 `:ㅈㅂ` 이 입력되었다. 백스페이스를 두 번 연타한다. 입력소스를 영문으로 바꾼다. 다시 `:wq`를 입력하고 화면을 확인한 후 엔터를 친다. 다음에는 한영변환을 잊지않겠다고 다짐한다. 번거롭네요! 기본적으로 Normal mode에 진입할 때 한영 입력소스를 신경쓰면 예방되는 문제이..

Ruby language

레일즈 구현시 '필요한 기능을 떠올리고 찾아쓸 수 있는 상태가 되는 것'을 목표로 루비 개념을 훑습니다. Why Ruby? 개인적으로 '갈증'을 느낀 다음 학습을 시작하는 것을 선호합니다. 갈증을 해소하기 위한 학습은 즐겁고, 효율적으로 필요한 만큼 공부하기 좋기 때문입니다. 마침 아래 두 요인 덕에 루비에 대한 갈증이 최고조네요, 루비 학습하기 딱 좋은 타이밍! 42seoul 의 마지막 공통써클 프로젝트인 ft_trancendence. 이 프로젝트는 루비온레일즈로 게임서버를 만드는 프로젝트입니다. 루비 공부가 필수입니다. 스타트업들이 초기 생산성을 위해 루비온레일즈를 아직도 많이들 채택한다는 점에서 관심이 갔습니다. 국내에서는 이런 경향이 적어서 아쉽지만, 제가 애용하는 당근마켓도 초기에는 루비온레일즈..

[ft_transcendence] Kick off

42seoul에서 진행한 프로젝트를 기록합니다. 아래는 2020년 12월 4일 진행한 프로젝트 kickoff를 요약한 내용입니다. 1. 들어가며 이번에 진행할 프로젝트는 '트렌센던스'입니다. 트렌센던스는 '초월'이란 뜻입니다. 왜 프로젝트에 이런 거창한 이름이 붙었을까요? 42seoul에는 공통 과정에 해당하는 '이너써클'이 존재하고, 이후에 하고 싶은 주제에 해당하는 프로젝트를 선택해서 진행할 수 있는 '아웃써클'이 존재합니다. 그리고 트렌센던스 프로젝트는 이너써클의 마지막 프로젝트로, 이를 완료해야 아웃써클을 진행할 수 있습니다. 즉, 공통써클을 초월하려면 뽀개야하는 관문인 셈이며 이런 성격이 이름으로 드러난 것 같습니다. 트렌센던스 프로젝트는 개발기를 블로그에 남겨보려합니다. 앞서 진행한 Webse..