기타 54

[YAML] 변수 할당 및 참조 - anchor & alias

개요2024.12.22-[Yaml] 텍스트 표현 - 개행 처리 글을 작성하기 위해 자료를 찾다가 yaml에는 값 재사용을 위한 변수 할당이라는 좋은 문법이 있는 것을 알게 되었다. 변수 할당 방법을 인지하고 있으면 이후에 복잡한 문서도 보다 효율적으로 작성할 수 있을 것 같아 기록차 적어둔다.  anchoryaml에서는 & 기호(anchor)를 사용하여 변수를 선언할 수 있다.key: &var_name value# 예시default: &default_school grade: &default_grade 1 group: 서울대학교 description: 1946년에 설립된 국립대위의 데이터의 경우에는 값 1을 default_grade라는 변수에 저장하고, default 키의 값을 default_..

기타 2025.01.06

[YAML] 텍스트 표현 - 개행 처리

개요API 개발 업무 진행 중 사용할 설정 파일이 필요해졌는데, 필요한 값에 개행이 추가되어 있다. yaml 형식의 데이터에서 개행이 포함된 텍스트 값을 어떻게 설정하는지 적어둔다.  LiteralYaml에서 개행이 포함된 block은 크게 두 가지 스타일이 존재한다. 그 중 하나는 | (pipe)로 표시하는 Literal 방식으로, yaml 사양에서는 "is the simplest, most restricted, and most readable scalar style"이라고 일컫는다.my_pattern: | With his own sword, Which he did wave against my throat, I have ta’en His head from him.Literal 방식은 값에 포함된 ..

기타 2025.01.03

OpenAPI / Open API / Swagger 란?

개요FastAPI 공식 문서를 참고하다 보면 OpenAPI라는 단어를 종종 보게 된다. 처음 FastAPI를 다룰 때에는 그런 게 있나 보다 하고 넘어갔는데, 슬슬 어떤 개념인지 짚고 넘어가야 할 것 같아 정리한다.   OpenAPI vs Open API구글 검색으로 OpenAPI를 찾아보면 전혀 다른 개념을 설명하는 여러 글을 발견할 수 있는데, 각각의 정의는 다음과 같다. Open APIOpen Application Programming Interface, Open API, 공개 API .개발자라면 누구나 사용할 수 있도록 공개된 API를 말하며, 개발자에게 애플리케이션이나 웹 서비스의 프로그래밍적인 권한을 제공한다. 다시 말해, 어떤 웹 사이트에서 자신이 가진 기능을 이용할 수 있도록 공개한 프로그..

기타 2025.01.02

[Yaml] null 표현하기

개요최근 yaml 형식의 문서에 null 값을 명시적으로 지정해야 하는 일이 생긴 김에, 방법을 기억해 두고자 적어둔다.설정한 값은 PyYAML을 사용해 어떻게 인식되는지 확인해본다.  null 키워드yaml에서 빈 값을 지정하는 가장 기본적인 방법은 null 키워드를 사용하는 것이다.key: null  테스트import yamlyaml_txt = """key: value1: null"""print(yaml.safe_load(yaml_txt))  ~~ 문자를 사용하여 null을 표현할 수도 있다.key: ~ 테스트import yamlyaml_txt = """key: value1: null2: ~"""print(yaml.safe_load(yaml_txt)) 생략키-값을 기재할 때 값을 생략해도 null로 ..

기타 2024.11.07

[기록] API 개발 시 주의할 점

개요최근 API 개발 업무를 담당하고 있다. 기능 개발 자체는 애플리케이션 내부에서 발생하기 때문에 크게 어려움이 없었는데, 애플리케이션 외부와의 요청 및 응답을 처리하는 과정에서 애로사항이 발생했다.관련해서 기억해 둘 만한 부분을 적어둔다. 참고로 대단히 경험적인 이야기다…….  JSON 데이터 생성은 생성기를 사용한다.일반적으로 데이터를 주고받는 형식 중 하나인 JSON은 문자열 데이터이다. 프로그래머가 코드에서 문자열 객체로 JSON 데이터를 만들거나 프로그래밍 언어에서 지원하는 JSON 관련 라이브러리로 데이터를 만들 수 있다. 당연한 말이지만 JSON 형식 데이터를 문자열로 직접 생성하는 것은 지양하는 것이 좋다. 사람이 JSON 문자열을 다루는 경우에는 큰따옴표가 아니라 따옴표를 사용하여 문자..

기타 2024.11.06

[HTTP] header - Content-Type, Accept

개요최근 API 개발 업무를 담당하고 있는데, API 정의서에 Content-Type, Accept라는 HTTP 헤더에 대한 내용이 기재되어 있었다. 두 헤더 모두 데이터 형식과 관련된 것으로 보이는데, 각각의 개념에 대해서 적어둔다.  Content-TypeHTTP 메시지 본문(Body)의 미디어 타입, 즉 전송된 데이터의 유형을 나타낸다.Content-Type: text/html; charset=utf-8Content-Type: application/json; charset=utf-8Content-Type: multipart/form-data; boundary=somethingHTTP 표준을 따르는 브라우저와 웹 서버는 Content-Type 헤더를 기준으로 HTTP 메시지 내 데이터를 해석한다.참고..

기타 2024.11.05

[Pycharm] 파일 변경 사항 복원

개요Python 개발을 할 때 Pycharm을 사용하고 있는데 간혹 변경한 부분은 다시 원복해야 하는 경우가 종종 있다. 근데 그 양이 많아서 실행 취소로 할 수 없는 수준이라 곤란했었는데, Pycharm에서 파일 변경 사항을 추적하는 기능을 제공해주고 있어 정리한다.  로컬 히스토리로컬 히스토리 기능은 Git과 같은 형상 관리와 별도로 프로젝트에서 발생한 변경 사항을 지속적으로 추적하는 기능이다.커밋 간의 차이점만 추적하는 Git과는 다르게, 코드 편집, 테스트 실행, 애플리케이션 배포 등의 작업을 할 때 프로젝트의 상태를 자동으로 기록한다. 따라서 삭제한 파일을 복원하는 등의 작업을 수행할 수 있게 된다. 다만 Git과 같은 형상 관리를 대체하지 못하고, 보관 주기와 보관 용량에 한계가 있다.  이력..

기타 2024.09.27

[OOP] 객체 지향 - 추상화

개요객체 지향 프로그래밍(Object Oriented Programming, OOP)이란, 데이터를 입력받아 순서대로 처리하고 결과를 도출하는 절차적 프로그래밍(Procedure Programming) 관점에서 벗어나 여러 객체가 유기적으로 협력하면서 데이터를 처리하는 프로그램 설계 방식을 말한다.객체 지향 프로그래밍은 프로그램을 단위로 구분하여 프로그램을 유연하고 쉽게 변경할 수 있도록 만든다. 물론 객체 지향 프로그래밍의 장점을 잘 살릴 수 있도록 프로그램을 설계하기 위해서는 객체 지향 프로그래밍의 특징을 잘 이해하고 있어야 한다.이번 글에서는 객체 지향 프로그래밍의 특징 중 하나인 추상화(Abstraction)에 대해서 정리해보려고 한다.   추상화사전적으로 추상화란, 사물이나 표상을 어떤 성질, ..

기타 2024.09.06

[Excel] 테이블 INNER JOIN하기

개요2024.02.08-[Excel] 파워 쿼리 - 테이블 교차 조인 수행하기에서 Excel을 이용해 Cross Join은 수행해 보았는데, 정작 Inner Join 수행 방법을 몰라서…… 이 글에서 정리해 둔다.   테스트 데이터아래와 같이 두 개 표가 존재한다고 하자. 두 개 테이블을 Logic 컬럼을 기준으로 Join 해보자.   표 생성ctrl + t를 눌러 두 개 테이블을 표로 생성한다.  Query 생성생성한 표의 데이터를 Power Query에서 다를 수 있도록 쿼리를 생성한다.생성한 표를 선택한 상태에서 상단 메뉴의 데이터 > 데이터 가져오기 및 변환 > '테이블/범위에서' 버튼을 클릭한다.쿼리를 구분할 수 있도록 적당한 이름을 지정하고 상단 메뉴에서 홈 > 닫기 및 로드 > 닫기 및 다음..

기타 2024.08.22

[디자인 패턴] Factory method pattern

개요최근 오랜만에 팩토리 패턴이라는 개념을 다시 듣게 되었는데, 어떤 개념이었는지 기억이 잘 나지 않아서 정리해 둔다.  Factory method pattern객체 지향 디자인 패턴, 그중에서도 생성 패턴 중 하나이다.객체를 생성하기 위한 인터페이스는 정의하되, 생성할 클래스는 서브 클래스가 결정하도록 한다. 다른 말로 인스턴스화를 서브 클래스에 연기하게 하는 방법이다.객체를 생성하기 위해서는 종종 포함하기에 적절하지 않은 복잡한 프로세스가 필요할 수 있다. 때문에 팩토리 메서드 패턴은  객체 생성을 위한 별도의 방법을 정의하여 이러한 문제를 처리한다.   구조Product : 최상위 제품 클래스ConcreteProduct : 제품 구현체Creator : 최상위 팩토리 클래스. 추상화된 팩토리 메서드를..

기타 2024.08.13