분류 전체보기 132

간단한 원칙으로 좋은 HTTP API 만들기

개요 REST API라는 용어는 자주 사용하고, 면접 시에도 자주 질문을 받아서 면접 전에 해당 내용을 정리하고 가는 경우가 많습니다. 하지만, 막상 실무에서는 REST API의 복잡한 내용을 기억하기보다는 간결한 원칙들을 기억하고 지키는 것이 중요한 경우가 많습니다. 그래서 이 글에서 REST API를 간단히 훑어본 후 RESTful API는 아니지만 좋은 HTTP API를 만들기 위해 핵심적으로 기억해야 할 몇 가지를 정리하려고 합니다. REST API란? RESTful API는 아니더라도 REST API의 내용을 이해하고 필요한 부분을 이해하고 지키는 것은 중요하기 때문에 한 번 내용을 정리하고 가려고 합니다. API는 하나의 Application이나 서비스가 다른 Application의 서비스 내..

파이썬 Docstring 으로 문서화하기

Introduction Docstring은 파이썬에서 코드 문서화의 중심에 있는 기능입니다. 코드 문서화는 좋은 프로그램의 필수적 요소입니다. 아무리 성능이 훌륭한 코드여도 문서를 잘 갖추지 않는다면 사람들은 사용하지 않을 것 이기 때문입니다. Commenting vs Documenting Code Comment: 주석은 코드를 개발자들에게 설명하기 위해서 사용. "코드는 '어떻게'를 알려주고, 주석은 '왜'를 알려줍니다.” - Jeff Atwood 코드 주석을 작성하는 목적은 계획 및 검토, 코드 설명, 알고리즘 설명, 태깅 등 여러 가지 주석은 구체적인 코드 라인이나 블록 바로 근처에 존재. PEP 8에 따르면 주석은 최대 72자까지여야 합니다. Documenting Code: 코드를 문서화하는 것은..

양양 북카페 카페로그 그리고 원제 스님의 다만 나로 살 뿐

 여행 둘째 날에 양양에 있는 북카페인 카페로그에 갔다. 여행 중에 책을 읽고 싶어서 북카페를 찾던 중 우연히 발견한 곳인데 사방이 숲 뷰여서 책읽기가 정말 좋았다. 좌석은 다양한 종류의 좌석이 있었는데 노트북 할 게 아니라서 숲이 제일 잘 보이고 의자가 편해 보이는 자리에 앉았다. 카페로그 신기한 점은 교과서 협회에서 운영하는 숙소 건물에 있는 카페라는 것이다. 그래서 그런지 책도 많고, 책 읽기 좋은 환경이었다. 우리는 주말 9시 30분 정도에 도착해서 우리가 도착했을 때는 두 팀 정도 밖에 없었는데 10시 30분정도 되니깐 사람들이 쭉쭉 들어왔다. 아 카페 뷰나 시설은 좋았는데 커피 맛이나 빵은 아쉬웠다..ㅠㅠ 카페 로그에서 좋았던 건 멋진 뷰나 커피도 아니고 이 책을 발견한 것이다! 원제라는 스..

일상/정보 2024.01.14

양양 스테이 연와 후기 / 연와에서의 하루

인트로1월 6일 부터 8일 까지 양양으로 새해 기념 여행을 다녀왔다. 그 중 1월 6일은 해돋이도 볼 겸해서 낙산비치호텔에서 숙박했고, 1월 7일은 스테이 연와에서 숙박을 했다. 낙산비치호텔도 좋았지만 스테이 연와에서의 시간이 정말 좋았다. 체크인 시간 맞춰서 바로 들어가서 체크아웃까지 진짜 재밌게 스테이 연와를 즐기고 온 것 같아서 여운이 가시기 전에 기록하려고 한다! ps. 쓰고 보니 사실 후기보다는 그냥 나의 기록에 가깝다.. 스테이 연와사이트 주소: https://www.yeonwa.com/ 스테이 연와는 와이프가 숙소를 찾아보던 중에 유명한 건축가 분이 설계하신 집인데 가격이 그래도 합리적이고 좋아 보인다고 해서 알게 됐다. 일요일 기준 23만원 또는 24만원 정도에 예약을 한 것 같다. 인구 ..

Traveling/한국 2024.01.09

장고는 DB connection을 어떻게 관리할까?

! 이 글은 Django 5.0을 기준으로 작성됐습니다. 내부 코드를 분석한 부분은 저의 해석으로 잘못 이해한 부분이 있을 수 있습니다. DB Connection in Django Django를 사용하다가 다른 Framework를 사용하면 귀찮은 부분 중 하나가 명시적으로 DB Connection을 관리하는 부분입니다 예를 들어, Flask를 사용하여 SQLAlchemy를 적용할 때는 다음과 같이 데이터베이스 연결을 생성하고 관리해야 합니다. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db' db = SQLAlchemy(app) # 사용자 추가 API @app.route('/user', methods=['POST']) def add_user(..

뉴올리언스 늪지투어 / 컨퍼런스 파티 / 로컬 도보투어

뉴올리언스를 원래 방문했던 목적은 Coalesce Analytics Conference를 참여하기 위해서 였습니다. 컨퍼런스 관련 글은 Coalesce 후기 글을 봐주세요! 그래서 평일에는 컨퍼런스에 참가하느라 관광을 하진 못했고, 목요일에 컨퍼런스가 끝나고 다시 뉴올리언스를 즐겼습니다. 평일에도 스폰서들의 파티가 있어서 시간이 될때 마다 종종 참가했고, 뉴올리언스 떠나기 전인 토요일에는 늪지투어를 다녀왔습니다. 컨퍼런스 파티 컨퍼런스 중 하루에 저녁에 퍼레이드가 진행됐는데 스케일이 생각보다 커서 놀랬습니다. 컨퍼런스장부터 Square까지 퍼레이드 후 Square에 뷔페와 DJ를 불러서 파티가 진행됐습니다. 미국 사람들은 노는데 진심이구나...를 다시 한 번 느꼈습니다 ㅎㅎ 이런 건 배워야해...! 컨퍼..

Traveling/미국 2023.12.23

뉴올리언스 세인츠 미식축구 직관 후기 / 뉴올리언스 여행

뉴올리언스 3일 차 일요일! 일어나서 맛있는 커피를 마시고 싶어서 주변 카페를 찾아봤는데 Mr Wolf Espresso라는 카페가 리뷰도 좋고 분위기 좋아보여서 방문했다. 호텔에서 걸어서 15분 정도 걸렸는데 날씨가 좋아서 산책으로 좋았다. 뉴올리언스 여행 내내 참 날씨가 좋았다. 날씨 하나만으로도 매력있는 도시일정도로..! 카페에 책과 미술 그림도 같이 있어서 분위기가 괜찮았다. 커피 맛은 쏘쏘... 내 생각에는 우리나라 커피 수준이 낮지 않은 것 같다. 커피 마시면서 다음 날 세션들을 더 잘 이해하기 위해서 DBT 관련 샘플 프로젝트를 한 번 따라서 셋업해서 해봤다. 1시간 정도 셋업하고 오후에 머할지를 찾아보다가 원래는 NBA를 보고 싶었는데 일정이 안 맞아서 NFL 미식축구 경기를 보기로 결정해서..

Traveling/미국 2023.11.12

Django에서 CSRF 공격을 막기 및 CSRF 토큰의 이해와 활용

웹 보안에 있어서 중요한 공격 유형 중 하나인 CSRF(Cross-Site Request Forgery)는 사용자의 의도와 무관하게 공격자가 준비한 악의적인 요청을 보내게 만드는 기법입니다. 사용자가 로그인 상태에서 공격자가 조작한 웹페이지에 접속할 경우, 그 페이지는 사용자가 인지하지 못하는 사이에 위조된 요청을 보내게 됩니다. 이를 통해 공격자는 사용자의 인증을 악용할 수 있습니다. Django는 이러한 CSRF 공격을 방지하기 위한 강력한 메커니즘을 기본적으로 제공합니다. 그 핵심 중 하나는 'CSRF 토큰'이 있습니다. (또 다른 방법은 CORS와 관련된 설정으로 궁금하신 분은 이 포스팅을 보셔도 좋을 것 같습니다.) CSRF 토큰이란? CSRF 토큰은 클라이언트가 서버로 요청을 보낼 때마다 서버..

뉴올리언스 버번스트리트, 프렌치쿼터, 잭슨스퀘어 도보 탐방

첫 째날과 둘 째날 오전에 이어서..둘 째날 오후 기록! 루크에서 점심을 먹고, 오후에는 프렌치쿼터와 잭슨스퀘어를 도보 탐방했다! 걷는 걸로 좋아하고 날씨가 좋았기 때문에 조금 거리가 있었지만 쭈~욱 걸어다녀봤다. 루크나 내가 머물었던 Q&C 호텔에서 프렌치쿼터를 가기 위해 항상 건너야 하는 큰 길가! 뉴올리언스는 건축물을 소개하는 투어가 따로 있을 정도로 건물양식이 다양하고 참 이쁘다. 잭슨스퀘어어 가면 세인트루이스 대성당과 잭슨광장이 있다! 그 둘레에는 그림을 파는 사람들이 있는데 사고 싶어서 고민하다가 사지는 않았다..ㅎㅎ 잭슨 스퀘어 그림 파는 거리 동영상! 잭슨 스퀘어! 잭슨스퀘어 정면에는 세인트루이스 대성당이 있다. 광장 안에 한 바퀴를 돌아봤지만 크게 볼 거는 없었다.. ㅎㅎ 성당 앞에서 무..

Traveling/미국 2023.11.05

BigQuery Merge Query 설명 및 사용 사례

이번 글에서는 Merge 쿼리에 대한 설명과 Merge문의 대표적 사용 사례인 Merge쿼리를 사용해서 MySQL BigQuery 간에 데이터 웨어하우징에 사용하는 사례를 함께 기록해 보려고 합니다. 계속 변경되는 데이터 소스를 기존의 데이터셋에 정기적으로 통합해야 할 때 자주 사용됩니다. Merge 쿼리 BigQuery에서 MERGE 쿼리는 SQL의 MERGE 문을 기반으로 하며, 두 개의 테이블을 결합하여 대상 테이블에 소스 테이블의 데이터를 삽입, 업데이트, 또는 삭제하는데 사용됩니다. 이것은 일종의 "upsert" 작업으로 보일 수 있으며, 즉 존재하지 않는 행은 삽입하고 존재하는 행은 업데이트하는 기능을 제공합니다. 위에서 설명한 것처럼 조건에 따라 삽입, 업데이트, 또는 삭제가 가능하기 때문에..

반응형