본문 바로가기
반응형

전체 글34

타입스크립트 핸드북 - 기본 타입 ✔︎ 이 글은 아래 2개의 타입스크립트 핸드북을 보며 공부한 내용을 정리한 글입니다.- 캡틴판교 타입스크립트 핸드북: https://joshua1988.github.io/ts/- TypeScript-Handbook 한글 문서: https://typescript-kr.github.io/ 개요회사에서 곧 새로운 프로젝트에 참여한다.Vue3 와 Typescript 를 사용할 예정이라 프로젝트 참여 전 조금씩 공부해놓으려고 한다. 기초 지식을 공부한 내용을 기록할 목적이기 때문에, TIL 정도로 가볍게 작성할 예정이다.타입스크립트의 기본 타입타입 스크립트의 기본 타입은 총 12개가 있다.string, number, boolean, object, array, tuple, enum, null, undefined, .. 2025. 5. 20.
외워서 끝내는 네트워크 핵심 이론 기초 - Internet 기반 네트워크 입문 ✔︎ 이 글은 널널한 개발자님의 '외워서 끝내는 네트워크 핵심이론 - 기초' 강의를 듣고 정리한 글입니다. 주제Layer 와 Layered 구조NetworkHostSwitchLayer & Layered 구조Layered 구조는 다른 의미로 의존 관계를 표현한 것과 같다.단순한 의존 관계에서 나아가 '존립' 까지 의존하는 관계일 수 있다 (예: 학사-고등-중등-초등).존립 의존한다는 것은 현재 계층이 의존하는 계층은 '전제 조건'이 된다는 것을 의미한다고 볼수도 있다. 네트워크에 대하여Network 는 관계, Networking 은 상호작용 으로 볼 수 있다. 상호작용이 성립하기 위해서는 특정 조건(규칙)들이 성립해야한다.OSI 7 Layer는 상호작용(Networking) 을 위해 필요한 규칙(프로토콜).. 2025. 5. 12.
vue.js - Missing required prop (feat. components 와 component) ✔︎ 회사 코드를 그대로 유출할 수 없기 때문에, 작성한 코드는 다른 예제로 변환하여 작성하였다. 개요회사에서 담당하고 있는 프로젝트의 프론트엔드는 Vue.js 로 구현되어 있다. 오늘은 개발 중 마주한 Missing required prop과 라우터 매핑에서 components와 component의 차이에 대해 다뤄보고자 한다. 개발 환경Vue 2.7Javascript상세 에러main.js:46 [Vue warn]: Missing required prop: "id"새로운 작성한 컴포넌트를 라우터에 등록하고, props를 정의하니 위와 같은 에러가 콘솔에 나타났다. 컴포넌트와 라우트에 아래와 같이 props를 제대로 정의했음에도 위 에러를 마주하게 되었다. 말 그대로 라우팅 시 prop으로 id 값이.. 2025. 4. 19.
트러블슈팅 - sqlalchemy.exc.MissingGreenlet 개요회사에서 담당하고 있는 프로젝트는 FastAPI로 구현되어 있는데, 새로운 기능을 추가하면서 SQLAlchemy를 점진적으로 도입하고 있다.오늘은 그 과정에서 마주한 MissingGreenlet에 대해 다뤄보려고한다.회사 코드를 그대로 유출할 수 없기 때문에, 작성한 코드는 다른 예제로 변환하여 작성하였다. 개발 환경python 3.10fastapi 0.104.1sqlalchemy 2.0.39상세 에러[ ERROR] (sqlalchemy.exc.MissingGreenlet) greenlet_spawn has not been called;can't call await_only() here.Was IO attempted in an unexpected place?SQLAlchemy 공식 문서에 따르면 .. 2025. 4. 11.
docker - 왜 ctrl + c 를 눌러도 컨테이너가 죽지 않을까? (feat. PID1) 개요최근 '도커, 쿠버네티스를 활용한 컨테이너 개발 실전 입문' 책을 읽는 스터디를 시작했다. 도커 개념부터 차근차근 공부하고 있고, 이미지 빌드와 컨테이너 생성 역시 실습을 통해 공부하게 되었다. 그러던 중 터미널에 ctrl + c 를 눌러도 컨테이너가 종료되지 않는 현상을 발견했다. 오늘은 그 이유를 알아보겠다. 문제 상황 0. macOS를 이용하고 있다. 1. Dockerfile 을 작성하여 이미지를 빌드하고, 해당 이미지로 생성한 컨테이너를 실행한다.2. Go 로 작성된 간단한 애플리케이션이 생성한 컨테이너에서 실행되도록 한다. main.gopackage mainimport ( "fmt" "log" "net/http")func main() { http.HandleFunc("/", func(w ht.. 2025. 2. 26.
파이썬 - 전방 참조 (Forward reference) 로 타입 힌팅하기 파이썬은 인터프리터 언어이다. 인터프리터 언어는 코드를 한 줄씩 읽고 실행하는 방식으로 동작한다.  이러한 특징 때문에 아래와 같이 아직 정의하지 않은 클래스를 참조할 때, 타입 힌팅에 어려움이 있다. class A: def __init__(self, b: B): self._b = b class B: def __init__(self): pass이 문제를 해결할 수 있는 방법으로 '전방 참조(forward reference)'가 있다.   전방 참조  이용 방법1. 문자열 방식 기본적으로 아직 정의되지 않은 클래스를 정의하기 위해 아래와 같이 전방참조를 이용할 수 있다. 타입 힌팅을 하고자 하는 클래스를 문자열로 감싸 정의한다. 이 방식을 사용하면 아직 클래스 A 입장에.. 2025. 2. 16.
테스트 - 외부 API 를 의존하는 OAuth 로그인 테스트하기 참고: 블로그를 이전하여 2023년 8월에 작성한 글을 옮깁니다. 우아한테크코스 피움 프로젝트에서 OAuth 2.0을 이용해 로그인을 구현하였습니다. 즉, 로그인 과정이 외부 API에 의존적이라고 볼 수 있는 것이죠.서비스를 제공할 때 문제가 되는 부분은 아니지만, 로그인에 대한 테스트 코드를 작성할 때는 문제가 될 수 있습니다.그렇다면 어떻게 외부 API에 의존하지 않고 테스트 코드를 작성할 수 있을까요?피움 프로젝트를 통해서 그 방법을 살펴보겠습니다.글을 읽기 전에 몇 가지 사항들을 체크해 봅시다.테스트이 글은 테스트 방법에 대해서 다루지만, 특정 테스트 종류들에 대해서 설명하지 않습니다.특정 테스트에 대한 지식이 필요하시거나 궁금하시다면 아래 자료들을 참고해주시면 감사하겠습니다.단위 테스트 vs 통.. 2024. 10. 31.
로그인 - OAuth 2.0 를 이용한 카카오 소셜 로그인 구현하기 참고: 블로그를 이전하여 2023년 7월에 작성한 글을 옮깁니다. 우아한테크코스 피움 프로젝트를 진행하면서 OAuth 2.0을 이용해 카카오 로그인을 구현하여 그 과정을 기록해보려 합니다.그럼 본격적으로 글을 읽기 전에 몇 가지 사항들을 체크해 봅시다. OAuth 2.0 기초 개념이 글은 독자가 OAuth 2.0 개념을 알고 있다는 가정 하에 작성되었습니다.만약 OAuth 2.0에 대한 기본적인 개념을 파악하고 싶다면 아래 자료를 참고해 주세요.Tecoble - OAuth 개념 및 동작 방식 이해하기Tecoble - OpenID와 OAuth2.0개발 환경이 글은 아래와 같은 환경에서 구현한 내용을 설명하고 있습니다.spring boot 3.1.1java 17설정하기카카오 로그인 흐름을 이해하기 위해 카카.. 2024. 10. 31.
데이터 처리 - 코랩으로 농촌진흥청 공공데이터 활용하기 참고: 블로그를 이전하여 2023년 7월에 작성한 글을 옮깁니다. 우아한테크코스 팀 프로젝트를 진행하면서 공공데이터를 활용하여 그 과정을 기록해보고자 합니다.개요사용한 데이터는 농촌 진흥청의 실내정원 식물 데이터 이고, 응답 데이터 형식은 xml입니다.데이터 파싱을 위해 python , beautifulsoup 를 사용하였습니다.그리고 환경설정 및 pandas 사용이 편리하기 때문에 구글에서 제공해주는 코랩(jupyter notebook)을 사용하였습니다. 사전 준비공공데이터를 사용하기 위해 데이터 사용 신청을 진행하고, 승인 후에 작업을 진행합니다.데이터의 이용 허락 범위를 확인하고 적절한 범위 내에서 사용합니다.open api 사용 매뉴얼을 숙지합니다.제공되는 데이터의 형태나 종류를 파악합니다.설정구.. 2024. 10. 31.
깃허브 저장소 이전하기 (GitHub Repository Transfer) 참고: 블로그를 이전하여 2022년 10월에 작성한 글을 옮깁니다. 개요프로젝트 레포지토리를 이동해야 할 일이 생겼다. import를 이용해서 클론 할 수 있는데 이슈는 함께 이동되지 않아서 다른 방법을 찾다가 transfer를 알게 되었다.서치 해보니 레포지토리 소유권을 넘겨줄 수 있다고 하는데 이슈까지 옮겨지는지에 대해서 확실하게 나와있지 않길래 그냥 내가 테스트해 봤다. Transfer 방법1. Transfer ownership레포지토리 설정 페이지의 “Options” 탭의 페이지 하단에 “Transfer ownership” 항목 선택2. 정보 입력소유권을 넘겨줄 계정의 정보와 확인 메시지 입력, 비밀번호 입력New owner's GitHub username or organization name: .. 2024. 10. 31.
반응형