본문 바로가기

Dev Story

돈의 역사 흐름 속에서 본 돈의 본질 돈의 역사 흐름은 교환수단을 어떻게 하면 편리하게 할 수 있을까 라는 관점에서 통화가 발전해 왔는데 그게 편리 해지고 보니 어떻게 하면 더 많이 돈을 벌 수 있을까 하는 사람의 욕심에 의해 그 양이 많아지게 되었고 화폐의 가치는 하락하게 되고 물가는 상승하게 되는 "인플레이션" 이 만들어졌다. 이 걸 해소하기 위해 다시 돈의 양을 줄였는데 지속적인 물가의 하락이 오게 되었는데 이것이 "디플레이션" 이다. 시중에 풀린 돈의 양에 의해서 인플레이션과 디플레이션이 번갈아 오면서 경기가 순환하게 된다. (* 아래 내용은 유수진 저자의 부자언니 특강의 일부 내용을 수정한 글입니다.) 1. 원시인들이 사냥해서 서로 물물교환 원시인들은 자기가 사냥한 물건을 물물교환을 했다. 하지만 서로 원하는 것이 아니더라도 교환을..
V8 엔진 은 어떻게 자바스크립트 를 최적화 해주는가? #1 V8 엔진 은 자바스크립트 속도 향상을 위한 목적으로 설계되었다. 이런 속도를 최적화 한 방법에는 소스코드가 실행될 때 Ignition이라는 인터프리터로 한 줄씩 바이트 코드를 생성하여 캐싱 하였다가 다음번에 똑같은 구문을 반복 하였을때 최적화가 필요하다고 판단 되면 TurboFan 컴파일러 를 사용해서 머신 코드를 생성하여 매번 똑같은 작업을 방지하도록 속도 개선을 하였다. 이 두개 (인터프리터+ 컴파일러) 를 사용한 형태를 JIT(동적 컴파일러)이라고 하는데 인터프리터와 컴파일러의 장점을 취한 방식이다. V8 정의 V8 엔진 은 구글 개발팀에서 ECMAScript(ECMA - 262) 3rd 표준규격의 C++로 작성되었다. 오픈 소스 자바스크립트 컴파일러 혹은 엔진이라고 불리며 크롬 브라우저나 안드로..
문장을 분석하여 포스팅에 도움을 앱 소개 - 포스팅 도우미 https://www.fnv-dev.co.kr/ 포스팅 도우미 FnV www.fnv-dev.co.kr 위 사이트는 블로그 에 글을 포스팅 할때 제목이나 태그를 어떤 것을 넣어야 할지 고민 하는 분들에게 도움을 주기위해 개발된 앱이다. 각종SNS (인스타, 페이스북, 트위터) 등에도 사용이 가능 하므로 범용적으로 쓰시길 바란다. # 앱 사용 방법 왼쪽 텍스트 박스에 포스팅할 문장을 입력하고 문장 분석 버튼을 클릭 하면 오른쪽 문장결과에 주요 단어 및 구절, 문장 을 리스트업 해준다. 결과 내용을 보고 마음에 드는 키워드들을 선택 하면 끝. # 앱을 개발 하게 된 배경 한창 파이썬을 이용한 NLP(자연어처리) 와 딥러닝에 관심 있을때 이 알고리즘을 발견 하게 되었고 어떻게 사용 할 수 있을지 아이디어가 떠오..
Docker 를 처음 적용해보는 분들에게 도움을 드리는 글 (설정법 포함) # 개요 글이나 영상 포스팅시 요약 단어와 문장을 분석 해주는 웹앱을 만들게 되어 호스팅 할려고 이것저것 알아보던중 heroku 에 배포 하면 무료로 사용 할 수 있다는 것을 알고 기쁜 마음에 관련 문서들을 읽어 봤지만 내가 만든 앱 의 구성은 nginx+react+fastapi 로 이루어져있기 때문에 단순하게 heroku git 에 push 하면 바로 배포가 되지 않는다. 다른 방법은 없을가 방법을 찾던중 docker container 형식으로 배포할 수 있다는 것을 알게 되었고 혼자 사용 하는 서버에 배포 할 건데 굳이 docker 가 필요 할가? 라는 고민에 빠지게 되었는데 이내 필요하다는 결론에 이르게 된다. 이유는 한 서버에 (서버가 감당 할 수 있는) 여러 프로젝트를 올리게 될것이고 그곳에는 ..
개발자는 어떤 언어를 익혀야 할가요? 에 대한 개인적인 답 MTO 개발자가 되고 싶은 취준생 혹은 이미 현업에 있는 개발자 분들이 자주 하는 질문은 아마 어떤 언어를 익혀야 할까요? 일 것이다. 언어에 따라 취업할 수 있는 회사도 달라지고 그에 따른 연봉 차이가 나서 개발자들은 고민을 많이 하게 된다. 필자 또한 어떤 걸 익혀야 할지 에 대한 고민을 많이 했었다. (현재 유행하는 언어를 배워하나? 아니면 많은 사람들이 사용하는 언어를 배워야 하나? 등등) 새로운 언어 에 대해 흔히 하는 착각은 갑자기 없던 기술이 뿅(?) 하고 나왔다는 환상을 가지고 있다 사실은 원천 기술을 가지고 기존에 있던 문제에 대해 개선을 해서 나오는 형태 이므로 새로운 기술을 익힌다고 해서 근본이 되는 기술을 배제하고 익힐 순 없는 노릇이다. 도식화하자면 아래와 같은 형태가 될 것이다. * 원..
성능 개선에 성공한 Master-Slave Model (feat. Nginx,Docker) 파이썬 웹앱을 클라우드에 올리기 위해 Nginx, Docker 개념을 공부하다가 유사하다고 느껴졌는데 둘다 Master-Slave Model 형태를 띄는 것 같다. ㅇ 마스터(Master), 주국(Primary) - 하나의 일을 수행하는데에 있어 동작의 주체가 되는 역할을 하는 것 . 모든 다른 슬레이브(종국)들을 제어하고 명령하는 주체 ㅇ 슬레이브(Slave), 종국(Secondary) - 종속적인 역할을 하는 것 . 주로 마스터의 지시에 따라 행동 # Nginx Nginx는 C10K (10,000 이상 요청에 대한 커넥션 생성이 되지 않아 성능이슈 가 발생 하는 것) 문제를 해결 하기 위해 개발 되었는데 이 문제를 Event-Driven-Model 로 성능 이슈를 해결 하였다. 이벤트 기반의 모델로 ..
딥러닝을 이용한 채팅 단어 자동 완성 프로그램 (크몽 의뢰편) # 개발 착수 크몽에서 개발 의뢰건이 하나 들어 왔다 내용은 위 그림과 같이 특정 키워드를 입력 하면 알고리즘이 연관되는 단어를 추천 해주는 프로그램 이다. 시스템 설계는 의뢰 하는 쪽에서 이미 되어 있었다 구성은 서버, 클라이언트, 딥러닝 학습 모델 이렇게 3가지 파트로 분류 되었다. 내가 맡은 분야는 클라이언트 부분 이다. 서버와 클라이언트는 소켓 통신으로 패킷을 송수신 하고 데이터 포멧은 Json 형태 이다. 전송 할 데이터는 키워드 인데 이 키워드를 AES암호화 알고리즘을 이용해 암호화 해서 송신 해야 한다. 위 내용만 봤을땐 개발 이 순조롭게 될걸로 예상 되었다. 설계도 깔끔 하게 된거 같고 기술들은 이미 시중에 다 나와 있어서 조금만 검색 해보면 처리 할 수 있는 것들이다. 회사에서 사용하는 ..
C# 영어문장 생성 프로그램 #2 (크몽 개발 의뢰건) 자료 구조들은 공통된 속성을 인터페이스로 정의해서 상속을 받고 있는 것을 볼 수 있습니다. 인터페이스들은 각각의 상위 인터페이스들을 상속 받고 공통된 속성을 공유 하여 클래스간 의존성을 줄여서 수정이 용이 하게 합니다. 객체지향 언어의 특성이라 볼 수 있습니다. 위 자료 구조 중에 사용된건 List 와 Dictionary 를 사용 하였는데 List: 인덱스로 엑세스 할 수 있어 목록의 검색, 정렬 및 조작에 이용 됩니다. 그리고 동적으로 할당이 가능해서 웬만하면 C# 에서는 List 를 주로 사용 됩니다. Dictionary: Key와 Valued가 하나의 쌍으로 이루어 져 있으며 탐색 할때 Key 에 해당하는 Value 를 찾을 수 있고 O(1) 시간복잡도를 가지고 있어 검색속도가 제일 우수한 자료 형..