분류 전체보기
-
[웹] 인증(authentication) 인가(authorization) 의 개념과 쿠키&세션과 JWT(토큰)방식에 대해 알아보자웹 개발/개념 2022. 4. 24. 13:31
1. 인증 (authentication) 로그인 과정으로 사용자가 누구인지를 확인하는 절차를 말함 서버는 데이터 베이스에 저장된 사용자 계정의 해쉬값과 사용자 암호의 복잡한 알고리즘으로 계산한 값과 일치하는지 확인함 2. 인가 (authorization) 사용자가 내 계정으로만 가능한 리소스에 접근하려는 사용자의 요청에 대해 권한을 확인하는 절차를 말함 웹 사이트를 이용할 때 쓰는 HTTP는 '서버가 클라이언트 상태를 보존하지 않는' Stateless 프로토콜이다. 클라이언트에서 보내는 요청들은 모두 독립적이며, 서버는 클라이언트의 요청에 response만 보내고 사용자 정보에 대해 기억하지 못한다. 따라서 이미 로그인을 했더라도 사용자가 새로운 요청을 할 때마다 로그인 과정을 거쳐야한다. 이 번거로운 ..
-
[클린코드] 8. 경계 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 24. 12:11
인사이트 정리 외부 라이브러리에도 버그가 있다는 것, 외부 라이브러리에 의존한다면 인터페이스가 바꼈거나 버전이 바꼈을 때 우리 코드와 호환되리라는 보장이 없다는 것에 매우 공감하면서 읽은 챕터였다. 이와 관련해 한 가지 경험이 떠올랐는데, 회사 프로젝트를 개발할 때 사용하던 momentjs가 업데이트가 중단되면서 dayjs로 교체하는 과정이였다. dayjs를 모듈화 하지 않고 반환값으로 사용했기 때문에 교체하는데 많은 시간이 걸렸다. 이런 불편함으로 따로 util 함수를 만들어 라이브러리를 노출되지 않도록 했는데 이런 경험으로 외부 라이브러리에 너무 의존하면 안된다는 것을 깨달았다. 학습 케이스라는 개념도 배웠으니 앞으로 외부 라이브러리를 쓸 때 적용해봐야겠다는 생각을 할 수 있게 되었다. 요약 시스템에..
-
[클린코드] 7. 오류 처리 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 18. 21:53
인사이트 정리 어려워서 두 번정도 꼼꼼히 읽은 챕터이다. axios로 api를 호출할 때 api 하나당 try catch 하나로 일관되게 오류를 처리해왔는데 지금의 방식이 책에서 말하는 감싸기 기법이나 특수 사례 객체를 사용하고 있는건지, 더 나은 방법은 무엇인지 답을 내리기가 어려웠다. 오류처리를 프로그램 논리와 분리해야하는 것은 알겠는데.. 객체지향 프로그래밍을 공부해야하는 것일까! 요약 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 오류처리는 중요하다. 하지만 오류처리로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. 1. 오류 코드보다 예외를 사용하라 - 오류 플래그를 설정하거나 오류 코드를 반환하는 방법은 호출자 코드가 복잡해진다. 함수를 호출한 즉시 오류를 확인하는..
-
[클린코드] 6. 객체와 자료구조 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 17. 15:47
인사이트 정리 요즘 타입스크립트를 공부하기 때문에 더 찔리는(..ㅎ) 챕터였다. 여태까지는 자료구조와 객체, 절차적인 클래스와 객체지향적인 클래스를 고려하지 않고 개발했던 것 같다. 과거를 되돌아볼 때 flutter에서 provider를 사용할 때는 빈 구조의 자료 구조체를 사용했던 것 같고, 타입 스크립트에서는 객체지향적인 클래스를 사용해보려고 한 것 같다. 이유를 묻는다면,, 코드 예시에서 그렇게 사용했기 때문에.,,? 하지만 이번 공부를 통해, 언어마다 정답이 있거나 예시에 있다고 냅다 따라 쓰는 것이 아니라 시스템의 확장성을 고려하여 자료구조와 객체 중 최적의 방법을 선택해야한다는 것을 알게 되었다. 6장까지 읽으면서 느끼는 건, 클린 코드를 만드는 정답이 따로 있는 것이 아니라, 개발자가 협업과..
-
[UPF 2022ss] 에이블리 프로덕트 디자이너님 세션정리 (4/9)나의/강의 세션 2022. 4. 11. 12:18
에이블리 프로덕트 디자이너님의 세션 '디자인 이론을 제품에 적용하는 방법'을 듣고, 의미있었던 강의 요약과 질의 응답을 정리하였습니다. 강의 요약 많은 디자인 이론, 레퍼런스들은 남의 이론이다. 서비스도 유저도 다르기 때문에 그 방법을 우리 안에 넣으면 성공하기가 어렵다. 참고는 하되 최대한 우리껄로 녹여서 자신만의 이론을 쌓는 것이 좀 더 좋다고 생각한다. 많은 실험을 통해 우리만의 데이터를 가지고 우리(팀) 만의 이론을 만드는 것이 중요하다. 실험할 때 고려할 점 1) 가설을 검증할 수 있는 최소 스펙인지, 기존의 디자인 시스템 같이 이미 가지고 있는 디자인 스펙을 활용하면 코스트가 낮아진다 2) 개발과 디자인을 적게하면서 비즈니스 임팩트를 주나 3) 우리의 의도를 유저들에게 명확하게 전달하나 질의응..
-
[클린코드] 5. 형식 맞추기 - 요약 및 인사이트웹 개발/클린코드 2022. 4. 10. 16:56
인사이트 정리 클린 코드를 읽고 코드를 짜다보니 더 좋은 코드를 짜고 싶어 머리를 싸매게 된다. 속도가 느려지는 것은 당연.. 이런 고민을 선배 개발자에게 나누니 좋은 코드인지 아닌지는 서비스를 유지보수하고 확장했을 때 명확해지니 너무 고민하지말고 먼저 코드를 짜고 리팩토링을 해보라고 이야기를 해주었다. 클린코드에서도 코드 형식이 너무 중요하기 때문에 맹목적으로 따르면 안된다고 하는 것을 보고 책의 내용에 내 코드를 맞추기보다는, 책의 개념들을 참고해 나(팀)만의 규칙으로 만드는 것이 중요한게 아닌가 하는 생각이 들었다. eslint나 prettier처럼 코드 스타일을 맞춰주는 도구들이 많은데 도구들에 의존하기 보다는 규칙들을 적용해 더 잘 활용해보아야겠다. 요약 프로그래머라면 형식을 깔끔하게 맞춰 코드..
-
[배달의 민족] 이게 무슨일이야! 컨퍼런스 정리 (4/1)나의/강의 세션 2022. 4. 9. 18:38
배달의 민족님의 컨퍼런스 중 '싫어하는 사람과 일하는 법' 세션을 듣고 정리하였습니다. 세션 요약 회사의 주체는 동료이다. 따라서 옆에 있는 동료와 동료와 서로 좋아하고 격려하고 못하는 것이 있으면 도와주게 만들어야한다. 기업문화가 좋은가? 기업문화가 좋으면 이상한 사람이 없다. 하지만 기업문화가 좋은지 알기 쉽지 않음 → 다양한 방법을 통해서 회사의 정보를 알아야한다. 누구나 약점이 있는데 “왜 일을 이렇게 해?”가 아니라 서로 약점을 보완해주는 것이 중요하다. 싫어하는 사람과 일을 할 때 내가 맡은 일을 더 잘해내는 것이 중요한가 ? 옆 사람을 싫어하는 것이 더 중요한가? 개인사로 일의 퍼포먼스가 안 좋을순 있지만 , 내가 좋아하지 않은 사람 때문에 일의 퍼포먼스가 안 좋아진 것은 원하지 않는 것 맹..
-
[UPF 2022ss] 당근마켓 프론트엔드 리더님 세션정리 (3/26)나의/강의 세션 2022. 4. 9. 18:24
당근마켓 프론트엔드 리더님의 세션 '제품을 바라보는 관점 만들기'를 듣고, 의미있었던 강의 요약과 질의 응답을 정리하였습니다. 강의 요약 사람의 커뮤니케이션은 정보의 손실이 발생한다. 서로가 상상하고 있는 진실을 동기화 해야한다. 우리는 기계처럼 소통 해야하는데, 즉 언어를 만들고 약속을 정해야한다. schema로 잘 작성해두면 우리가 원하는 그래프 시각화가 가능하며 직무간에 같은 단어를 사용할 수 있다. 또한 schema를 사용하면 코드 생성이 되는 것이 장점이다. (code generation - graph QL codegen을 사용 질의응답 Q1. 일정을 예측할 수 없을 때 어떻게 해야하는가? A. 일정이 예정보다 늦어진다면 누군가 잘못하는 것이 아니라 예상을 잘못한 것. 미래를 예측하는 것과 같다..