본문 바로가기

728x90

분류 전체보기

(372)
[SQLAlchemy] Pytest를 이용한 Imperative Mapping 테스트 코드 HTML 삽입 미리보기할 수 없는 소스 개요 최근 SQLAlchemy의 Imperative Mapping을 자주 이용하고 여러 형태의 사용법을 점검하고 있다. 이 과정에서 Pytest를 이용해 어떻게 하면 Imperative Mapping 방식을 이용한 ORM을 테스트할 수 있을지 고민했다. 이 포스팅에 기록하려고 하는 건 나름대로 구성한 프로젝트 구조에서 Pytest를 사용하면서 고민했던 부분과 이를 어떤 방식으로 해결했는지에 관한 것이다. 무엇을 테스트하며 무엇을 고려했는가 테스트를 하려고 한 대상 코드는 다음과 같은 구성이다. Service가 Repository의 Method를 사용하고 Repository의 Method는 DataBase에 Query를 날린다. 이를 코드로 표현하면 다음과 같은 구조..
[picoCTF] General Skills Super SSH ╰─$ ssh -p 58403 ctf-player@titan.picoctf.net 255 ↵ The authenticity of host '[titan.picoctf.net]:58403 ([3.139.174.234]:58403)' can't be established. ED25519 key fingerprint is SHA256:4S9EbTSSRZm32I+cdM5TyzthpQryv5kudRP9PIKT7XQ. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '[titan.picoctf.n..
Python으로 Android에 파일을 전송하는 방법 HTML 삽입 미리보기할 수 없는 소스 개요 지난번 글에서 Google API 없이 Youtube 데이터를 수집했던 에피소드를 포스팅했다. Google API 없이 Youtube Page를 분석해 자주 듣는 유투버의 커버 영상을 MP3 파일로 변환하여 다운로드하는 것이 주된 내용이었다. 그러나 MP3 파일로 변환하여 다운로드하는 것까지는 자동화가 가능했지만 다운로드를 완료한 파일을 Android에 옮기는 부분을 자동화하지 못했다는 점이 아쉬웠던 부분으로써 언급했다. 이 부분을 해결하려고 생각했던 Idea는 Python Kivy를 활용하는 것이었는데 이 포스팅을 쓰기 전 잠깐 다뤄보니 build를 통해 apk파일을 뽑아내는데 까지 시간이 너무 오래 걸려 다른 아이디어를 고민해 봤고 이 포스팅은 이에 대한 ..
[24년 3월] 하기 싫으면 관둬라 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스개요3월을 대표하는 짤로 해학적 의미가 담긴 짤을 골랐다.  이 짤을 보며 든 생각은 “주어진 것을 열심히 하는 것 외에는 달리 할 게 없는 게 현실”이라는 점이다. 만화 “더 파이팅”에서는 이와 비슷한 메시지가 등장한다. (”더 파이팅”은 복싱 만화다)“노력한 사람이 반드시 성공한다고는 볼 수 없다. 그러나 성공한 사람은 모두 예외 없이 노력했다는 걸 명심해”이는 작중 등장하는 “마모루”라는 캐릭터가 첫 세계 챔피언 타이틀에 도전하는 상황에서 “카모가와” 관장이 “마모루”에게 해주는 격언이다. 더파이팅에 등장하는 “마모루”가 보여주는 평소 모습은 가볍고 유쾌하며 장난이 많은 성격이라 주변 캐릭터는 이런 사람이 “챔피언”이..
Google API 사용없이 Youtube 영상을 mp3로 저장하기 목차 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 개요 Youtube 중 "김달림"님이라는 분이 계신다. 이 분의 커버 영상을 MP3로 변환하여 휴대폰에 저장하여 이동 중에 듣기도 하며 커버 영상을 틀어놓고 개발을 하거나 책을 읽기도 한다. 문제는 휴대폰에 저장하여 이동 중에 듣는다는 것인데 최신 커버 영상이 올라오면 따로 수작업을 통해 휴대폰으로 옮기는 과정이 매우 귀찮은 작업이라는 점이다. 그렇기에 커버 영상의 정보를 가져와 MP3 파일로 일괄 다운로드를 수행하는 스크립트를 만들어봤다. 적어놓고보니 목표로 하는 것은 간단해 보이지만 그 과정은 쉽지만은 않았는데 이 포스팅은 이 과정에 대한 기록을 해놓은 것이다. 1. Google API 없는 Youtube 정보 수집이..
[AWS] AWS에서의 Public 및 Private Subnet 설정 HTML 삽입 미리보기할 수 없는 소스 개요 도메인을 구입하고 AWS와 연결해야 되는 경우 Route53, ELB, 대상그룹, EC2로 환경을 구성했다. 이러한 구성은 간단하고 빨리 결과를 만들어 노출시키고 싶은 경우 이용하는 방법이었다. 코드를 수정하고 작업 결과를 반영시키기에도 빠른 방법이었는데 이는 EC2에 EIP 혹은 Public 옵션을 주었기에 가능한 일이었다. EC2의 IP가 외부로 노출되는 것이 꺼려지기에 EC2를 Private Instance로 만들었지만 해당 EC2에 접근하기 위해 어떤 환경을 준비하면 될까? 사실 이 내용은 AWS를 공부할 때 접하는 Public/Private Subnet 설정에 관한 것이다. 이 포스팅에서는 이에 관련된 내용을 기록해보려 한다. 1. VPC VPC를 먼..
[Review] LEAN HR 한빛미디어 서평단 활동을 위해서 책을 제공받아 작성된 서평입니다. 읽게 된 배경 서울에 올라와서 4년이 흘렀다. 돌이켜보니, "직원"으로서 스타트업을 경험했지만, 실제로는 "스타트업"에 대해 진지하게 생각해 본 적이 없었다 핑계를 대자면, 당면한 업무에 집중해 직무 전문가로서의 역량을 갖추는 것이 중요하다 생각했기에 스타트업이라는 조직이 어떻게 운영되어야 하는지에 대해 생각해보지 않았던 것이다. 이 글을 읽는 분은 “4년 차가 스타트업 운영까지 신경 써야 하는 연차인가?”라 보실 수 있다. 그러나 내가 이런 고민을 하는 이유는 작년부터 진행 중이던 사이드 프로젝트가 “창업”을 목적으로 프로젝트 개발이 진행되고 있기 때문이다. 최근에 와서 조직이라는 기틀을 마련 중인 상황에 자연스레 “나는 스타트업에 대해..
[SQLAlchemy] Pessimistic/Optimistic Lock HTML 삽입 미리보기할 수 없는 소스 개요 웹 서버는 여러 Client의 요청을 동시에 수행할 수 있어야 한다. 한 자원을 놓고 동시에 요청이 실행한다면 어떤 문제가 발생할 수 있을까? 위와 같은 주제는 동시성(Concurrency)이라는 개념에 대해 생각하게 만드는 주제이다. 비관적(Pessimistic)/낙관적(Optimistic) 잠금에 대한 이해를 필요로 한다. 그러한 맥락에서 이 포스팅은 SQLAlChemy의 Session ORM을 통해 각각을 어떻게 구현할 수 있을지에 대해 정리한 내용이다. 1. Concurrency 문제 한 자원을 놓고 동시에 요청을 실행하는 문제는 익히 알려져 있다. 이는 다음과 같은 도식화로 설명이 가능하다. 위와 같은 시나리오에서는 사용자 A, B가 Resouce를 ..

728x90
반응형