전체 글 217

DRF Serializer는 무엇이며, 어떤 기능을 수행합니까?

Serialize를 직역하면 '직렬화하다'라는 뜻이 나온다. 그렇다면 직렬화는 왜 수행하고, 어떻게 수행하는지 궁금해져서 정리를 해보았다. 먼저 직렬화를 이해하기 위해서는 Rest API에 대해 이해하고 넘어가야 한다. Rest API Rest API는 Rest를 기반으로 만들어진 API를 의미한다. Rest는 Representational State Transfer의 약자로, 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 말한다. 다시 말해, HTTP URI를 통해 자원(resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것 데이터가 요청될 때 JSON이나 XML을 통해..

Framework/Django 2023.10.11

Github Action란? 핵심 개념은?

GitHub Actions란? GitHub Actions는 코드 저장소(repository)로 유명한 깃허브(GitHub)에서 제공하는 CI(Continuous Integration, 지속 통합)와 CD(Continuous Deployment, 지속 배포)를 위한 비교적 최근에 추가된 서비스입니다. 당연히 GitHub에서 코드를 관리하고 있는 소프트웨어 프로젝트에서 사용할 수 있으며 개인은 누구나 GitHub에서 코드 저장소를 무료로 만들 수 있기 때문에 다른 CI/CD 서비스 대비 진입장벽이 낮은 편입니다. GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트(event)가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬 수도 있습니다. 예를 들..

Git issue 생성

Github를 다루다 보면 Issue 창을 발견하게 될 것이다. 이 창이 뭘까 계속 궁금해져서 참지 못하고 공부해보았다. Issue 생성 과정 1. github repository의 Setting 탭에 살펴보면 Features의 Issues 부분에 Set up templates 를 클릭한다. 2. Custom templates를 추가로 눌러서 설정했다. 3. 다 변경했으면 Commit을 하자 그렇게 하면 내 Repo에 이렇게 업데이트되어있음을 확인할 수 있다. 이렇게 template를 업데이트하는 이유로는, 혼자 하는 경우가 아닌, 협업에서 모든 팀원이 양식을 지켜줘야 하는 이유가 있다. 이제 그럼 이 markdown 양식을 참고해서 모든 팀원은 Git issue에 작성해주면 된다.

Jira 사용법

Jira는 짧은주기의 개발단위를 반복하여 프로젝트 완성시켜나가는 에자일 방식의 프로젝트 관리 협업 툴이다. jira는 2가지 용도로 사용되 수 있다. 1. 에자일 방식의 프로젝트 관리 → 칸반, 스크럼 등을 사용. 2. 개인/사무용 업무 관리 Trello 처럼 가볍게 일처리가 가능한 툴은 아니지만, 월등히 많은 기능을 가지고 있다. 하지만 그 만큼 숙력도가 요구되므로 충분한 학습이 필요하다. 워크 플로우 워크 플로우는 이슈의 lifecycle이 완료될 때까지의 상태 변화를 의미한다. 각 박스는 상태를 의미, 화살표는 상태 전이를 의미한다. 프로젝트 상황에 맞게 워크 플로우를 설계하여 사용해야 한다. 이슈(Issue) 이제 기획자와 개발자라면 반드시 사용해야만 하는 툴이 된 지라, 지라를 사용할 때 구성원..

Primary Key, Foreign Key 차이

관계형 데이터베이스에서 핵심은 테이블 간 적절히 관계를 맺어주면서 데이터 중복을 최소화하여 구조를 짜임새 있게 만드는 것이다. Primary Key 모든 레코드가 서로 다른 값을 가지고 있어 각 레코드를 식별할 수 있다. NULL값이 존재할 수 없다. 레코드의 값은 중복이 불가능하다. 테이블에는 하나의 기본키만 가질 수 있지만 경우에 따라 1개 이상의 기본키를 정의할 수도 있다. (다수 열 기본 키, 복합 기본 키) PK 생성 CREATE TABLE user { id int PRIMARY KEY } PK로 사용하기를 원하는 컬럼에 PRIMARY KEY 붙여준다. 단, 이 때 기본키의 값을 가진 컬럼은 중복값과 NULL값이 없어야 한다. 기본키를 설정해두면 해당 컬럼에 중복값을 INSERT하려고 할때 작동..

버블 정렬

정의 Bubble Sort는 Selection Sort와 유사한 알고리즘으로 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 이다. 이름의 유래로는 정렬 과정에서 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어졌다고 한다. Process 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 (마지막-1)번째 원소와 마지막 원소를 비교하여 조건에 맞지 않는다면 서로 교환한다. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 원소는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 원소까지는 정렬에서 제외된다. 이렇게 정..

VSCode에서 나타나는 File "<stdin>", line 1 에러

파이썬으로 열심히 코드를 쓰면서 여러 자료구조를 정리하는 도중에 무근본 오류코드를 발견했다. 챗 지피티에 물어봐도 모르고 그래서 결국엔 구글링했는데, exit()나 ctrl+z를 실행하니 문제가 해결되었다. 파일의 1번째줄에서 ^표시된 부분에 잘못된 구문으로 인해 오류가 발생했다는 뜻인데, 사실 이런 것이 왜 나타나는지는 아직 잘 모르겠다. 하지만 특별한 코드 상 오류가 아니기 때문에 그냥 명령프롬프트에 명령어만 잘 누르면 해결이 된다.

언어/Python 2023.10.02

HTTP request method

HTTP 요청 메서드(HTTP request methods)는 HTTP 프로토콜을 사용하여 서버에 특정 동작을 요청할 때 사용되는 명령입니다. 각 메서드는 서버에게 어떤 동작을 수행해야 하는지를 나타내며, RESTful 웹 서비스와 같은 웹 애플리케이션에서 주로 사용됩니다. 아래에서 각 HTTP 요청 메서드에 대한 상세한 설명을 제공합니다: GET: GET 메서드는 지정된 리소스의 표현(representation)을 요청합니다. 이 요청은 주로 데이터를 서버로부터 가져오는 데 사용됩니다. GET 요청은 보통 읽기 작업에 사용되며, 서버의 상태나 데이터에 변경을 가하지 않아야 합니다. 따라서 GET 요청은 안전하고 멱등하며 캐시할 수 있습니다. HEAD: HEAD 메서드는 GET 요청과 동일한 응답을 요청..

HTTP

HTTP란? 💡 하이퍼텍스트 전송 프로토콜(HTTP) HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. 클라이언트-서버 기반 프로토콜이며, 웹에서 이루어지는 모든 데이터 교환의 기초입니다. 처음에는, WWW(World Wide Web) 상의 하이퍼텍스트 형태의 문서를 전달하는데 주로 이용 현재에는, 이미지,비디오,음성 등 거의 모든 형식의 데이터 전송 가능 클라이언트(Client) 시스템에서 서버에 요청(Request)한 다음 서버(Server)에서 응답(Response) 메시지를 보내는 작업의 흐름에서 HTTP가 작용 HTTP로 캐시 혹은 인증 메서드, origin 제약 사항 완화, 프록시와 터널링 등의 기능을 추가로 사용할 수 있습니다. 캐시 HTTP로 문서가 캐시되는 방식을 ..

프로그래밍에서 SOLID란?

SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙( SRP, OCP, LSP, ISP, DIP )을 말한다. 단일 책임 원칙 (SRP, Single Responsibility Principle) 클래스(객체)는 단 하나의 책임(기능 담당)만 가져야 한다는 원칙 ex) 청소기는 청소의 기능만을 담당해야한다! 개방 폐쇄 원칙 (OCP, Open Closed Principle) 확장에 열려있어야 하며, 수정에는 닫혀 있어야 한다는 원칙 ex) 청소기에 튜닝(옵션)을 하더라도 기본 기능을 변경해서는 안된다! 리스코프 치환 원칙 (LSP, Liskov Substitution Principle) 서브 타입은 언제나 기반(부모) 타입으로 교체할 수 있어야 한다는 원칙 ex) “먼지를 모아..