본문 바로가기

분류 전체보기256

[네트워크] HTTP 메서드 종류 HTTP 메서드 종류TTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다.HTTP 메소드의 종류는 총 9가지가 있다. 이 중 주로 쓰이는 메소드는 5가지로 보면 된다.주요 메소드GET : 리소스 조회POST : 요청 데이터 처리, 주로 데이터 등록에 사용PUT : 리소스를 대체, 해당 리소스가 없으면 생성PATCH : 리소스를 일부만 변경DELETE : 리소스 삭제기타 메소드HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환OPTIONS: 대상 리소스에 대한 통신 가능 옵션을 설명(.. 2024. 9. 29.
[네트워크] HTTP 멱등성, 안정성, 캐시성 HTTP 메서드의 속성주요 HTTP Method인 GET / POST / PUT / PATCH / DELETE 는 각 메서드의 동작 과정 뿐만 아니라, 메서드의 속성 또한 알 필요가 있다. 왜냐하면 어떠한 HTTP 메서드로 서버에 요청했느냐에 따라 API 설계나 복구 메커니즘 캐시 최적화 등, 설계 로직이 달라질 수 있기 때문이다.HTTP 메서드의 속성으로는 크게 3 가지인 안전(Safe), 멱등(Idempotent), 캐시 가능(Cacheable)이 있다. 이들을 하나씩 살펴보는 시간을 가져보자. 안전성(Safe) HTTP 메소드의 안정성이란 보안 취약성을 말하는 것이 아니라 호출해도 리소스가 변경되지 않는 성질을 말하는 것이다.정말 쉽게 생각해서 GET 메서드는 단순히 데이터를 조회하는 기능을 수행하.. 2024. 9. 29.
[OOP] SOLID, 좋은 객체지향 설계의 5가지 원칙 SOLID에 대한 설명에 들어가기 전에 이해에 도움을 줄 수 있는 이야기를 해보겠다."객체지향 프로그래밍의 특성과 장점을 최대한으로 끌어올리기 위해 프로그램을 어떻게 설계해야할까?"📌 객체지향 설계과정요구사항(제공해야 할 기능)을 찾고 세분화 한다. 그리고 그 기능을 알맞은 객체로 할당한다.기능을 구현하는 데에 필요한 데이터를 객체에 추가한다.해당 데이터를 이용하는 기능을 구현한다. 기능은 최대한 캡슐화를 적용한다.객체 간에 어떻게 메소드 호출을 주고받을 지 결정한다.⭐️ 객체지향 설계의 5가지 원칙, SOLIDSOLID라는 좋은 객체지향의 설계의 5가지 원칙이 존재한다. SOLID는 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), D.. 2024. 9. 22.
[Git] 머지(Merge) 종류 (merge commit, squash, rebase, fast-forward) 👾 Merge Commit(3-way merge)두 브랜치의 변경 사항(history)을 모두 유지하며 메인 브랜치에 다른 브랜치를 병합(merge)합니다.이 경우 각 브랜치의 변경 사항들이 과거의 커밋으로 보존되며,병합 시 메인 브랜치에 새로운 'merge commit'이 추가되며 병합이 완료됩니다.Merge Commitfeature 브랜치의 가장 최근 커밋이 메인 브랜치로 병합되는 것을 볼 수 있습니다. 아래의 그림과 같이 3개의 커밋을 고려하여 병합이 이루어지기 때문에 3-way라는 이름이 붙여졌습니다.3-way merge1번은 두 브랜치의 공통 조상이 되는 커밋,2번은 분기된 브랜치가 가리키고 있는 커밋,3번은 다른 브랜치가 가리키고 있는 커밋입니다. 장점프로젝트의 진행 상황을 명확히 추적할 수.. 2024. 9. 21.
비즈니스 로직 vs 도메인 로직 비즈니스 로직, 도메인 로직이 대체 뭐야?'비즈니스 로직'을 분리하라.비즈니스/도메인 로직은 다른 계층에 의존해서는 안 된다.좋은 설계에 대해 얘기할 때 이런 말을 정말 많이 듣는다.대충은 무슨 말인지 알겠다. UI 업데이트하는 코드는 비즈니스 로직은 아니니까. 비즈니스 로직은 좀 더 추상적인 데이터를 다루는 쪽인 거지...?근데 DB에서 특정 조건의 데이터를 가져오는 코드는?서버에서 가져온 데이터를 파싱하는 코드는?화폐 단위를 다른 화폐로 바꾸는 코드는?사용자가 검색한 데이터가 실제로 있는지 확인하는 코드는?음... 비즈니스 로직인가? 아닌가...?이 단어를 자주 쓰면서도 어렴풋하게 알고 있단 사실을 깨달았다.그러다 매우 명료하게 설명해주는 글을 찾아서, 오늘은 비즈니스/도메인 로직이 뭔지에 대해 간단.. 2024. 9. 21.
[Git] 이전 커밋으로 되돌리기(reset, revert) 비교 및 사용법 정리 git reset, git revert : 과거로 돌아가기git reset과 git revert는 특정 시점 commit으로 되돌리고 싶을 때 사용하는 명령어이다.git reset : 커밋 내역들을 삭제하고, 특정 시점의 커밋으로 되돌아감. 시계를 다시 맞추는 것.git revert : 이전 커밋 내역들은 그대로 두고, 되돌리고 싶은 커밋의 코드만 복원시킨다.이 개념을 쉽게 Devpools의 이리온님께서 설명해주셨는데, 다음의 링크를 참고하면 도움이 될 것이다.개발바보들 1화 - git “Back to the Future”1. git reset위의 사진에서 second commit을 실행한 시점으로 돌아가고 싶고, 3~4번째 커밋을 삭제하고 싶다면 다음과 같은 명령어를 실행한다.$ git reset 되돌.. 2024. 9. 21.