요즘엔 도메인 주도 개발(Domain Driven Development)가 트랜드다.
사실 트랜드라고 하기에도 조금 웃긴게 예전부터 도메인 주도 개발은 있던 단어였고, 요즘와서 다들 도메인 주도 개발이 괜찮다는 평이 많아진 느낌이다.
내가 느끼기에는 점점 AI의 도움을 받아 코딩을 하게 되고, 개발 지식들이 많이 퍼져 어떠한 기능을 구현하는 것이 점점 더 쉬워지는 추세가 되면서 그 외의 것이 더 부각된 것 같다.
주니어 개발자로써 기술적인 역량이 어느정도 쌓이면 주어진 문제를 어떻게 해결하느냐가 관건이 되는데 거기에 굉장히 중요하게 작용하는 요소가 도메인 지식인 것 같다. 어떤 기능을 구현하면서 pre/post condition을 생각하거나, 해당 기능을 개발하는 목적 그리고 그 기능이 추후에 어떻게 확장되어 나갈지를 생각하기 위해서는 도메인 지식이 필수이기 때문이다.

개인적으로는 나는 여러가지 도메인을 경험해 보았다고 생각한다.
커머스, 금융, 광고 등등...
새로운 도메인을 만날 때마다 우리 회사 제품을 더 잘 이해하고, 더 잘 개발하기 위해서 도메인 지식을 쌓고,
해당 분야에 계속 관심을 가지기 위해 노력했다.

요즘에는 광고 산업 쪽에서 일을 하게 되었는데 커머스와 금융 쪽 도메인을 만났을 때보다 훨씬 생소했다.
CPC, RTB, 네트워크 광고 등등
실생활에서 접하기 힘들 말들이여서 그런 것 같다.
그래서 이번 기회에는 회사에서 스터디도 하면서 관련 도메인 지식들을 남겨보면 좋을 것 같다는 생각이 들었다.
그런 지식들을 한 번에 모아놓은 곳이 없어서 내가 정리해보고 싶은 마음도 있고, 다른 사람에게 도움이 되면 좋을 것 같다는 생각에 정리를 해보려고 한다.

처음은 광고 관련된 용어부터 시작해서, 주로 영상 광고 쪽 지식을 정리해보려고 한다.
그리고 내가 생각하기에 해당 도메인의 재밌는 스토리도 기록해보고 싶고,
이전에 경험했던 도메인도 기억이 나는대로 기록해보겠다.

서버를 구성할 때 고를 수 있는 언어는 다양한데 각자 장단점이 있는 것 같다. java의 spring framework를 잘 쓰시는 분들이 워낙 많아서 특이사항이 없으면 spring을 고르는게 좋은 것 같지만 그래도 다른 언어의 프레임워크를 쓰면 좋을 만한 상황이 있는 것 같다. 그 중에 파이썬으로 구성하면 두 가지 상황에서 강점을 발휘한다.

python

1. 머신러닝, 데이터 사이언티스트와 같이 협업하기 좋다.
  머신러닝 개발자나 데이터 사이언티스트라면 파이썬에 익숙할 것이다. 그러면 머신러닝 개발자가 모델을 서빙하는 서버를 구축해야한다던가, 데이터 사이언티스트가 데이터 파이프라인을 만드는데 있어서 서버도 같이 본다던가, 그런 유도리있는(?) 개발이 가능하다. 협업이라고 하기엔 조금 이상한 것 같은데 아무튼 유연한 상황들이 있어서 좋은 것 같다. 그래서 머신러닝에만 집중하는 회사들은 파이썬으로 서버를 만드는 경우가 많은 것 같다.

2. 스크립트 언어답게 일회성으로 뭔가 만들어야 할 때 좋다.
  가끔은 일회성으로 해야 할 것들을 코드로 짜는 경우도 있는데 이럴 때 참 편한 것 같다. 컴파일도 프로젝트 생성도 필요없이 스크립트 짜서 뭔가 하게 하는 것도 좋은데 django 같은 경우에는 python manage.py shell < main.py 과 같이 django 내부에 정의되어 있는 모델, 함수들을 바로 쓸 수 있어서 편하더라. 컴파일 언어 같은 경우에는 batch나 내부에 따로 일회성 api를 짜야할 것 같은데 더 좋은 방법이 있는지는 잘 모르겠다.

그리고 뭐 바로바로 실행하면서 함수를 테스트할 수 있는 것도 좋은 점이긴 한데 그건 스크립트 언어들의 장점이니까 '파이썬'으로 서버를 구성했을 때의 장점은 아니다. 아무튼 쓰면 쓸 수록 귀여운 언어인 것 같다. 뭔가 개구쟁이 같은 느낌이다.

4월부터 기존에 다니던 회사에서 퇴사하고 나서 무얼 해볼까 고민을 많이 했다. python으로 개발을 배우기 시작하고, 빠르게 배워서 취업을 했었던 나로서는 처음부터 CS(computer science) 지식이 부족한 것 때문에 그것에 대한 갈망이 있어 CS 관련 강의를 들어보고 싶기도 했고, 금융권으로 취직을 하고 싶어 C++을 배워보고 싶었는데 그 발판으로 무얼 할까 고민을 했었다. 그 와중에 실무 프로그래밍 입문 강의를 접하게 되었고, "실무"에 적합한 지식을 가르치고 프로그래밍 기초를 가르친다는데에서 들어보기로 했다. 물론 처음엔 20만원 정도하는 강의라서 조금 비싸다고 생각했다. 강의를 다 들은 지금도 그 생각에 변함은 없지만 강의 내용은 굉장히 마음에 든다.

실무 프로그래밍 입문 C#

이 강좌가 마음에 들었던 이유는 사실 python으로 개발을 하면서 왜 이런 기능이 있는지에 대한 의문을 해소해 주었기 때문이다. 예를 들어 "class에서 decorator로 @staticmethod를 써보면서 그냥 instance로 만들고 method를 호출하는 거랑 뭐가 다른가?" 라던지 "한 번만 쓸 로직인데 이걸 가독성을 위해서 함수로 만들어야하나 말아야하나..." 등등 이런 의문을 예시를 들어주면서 해소시켜줘서 굉장히 마음에 들었다. 개인적으로 프로그래밍을 하면서 실수를 줄일 수 있는 방향으로 코드를 짜야 한다는 말이 마음에 와닿았다. 파이썬으로 웹 개발을 하다보면 깊이 생각을 안 하고 코드를 짜게 될 때가 있는데 워낙 무거운 프로그램이 아니다보니 그냥 실행시켜보고 오류나면 다시 고치는 걸 반복할 수 있기 때문이다. 이러다보면 내가 테스트해보지 않은 부분에서 오류/예외가 날 수도 있다는 생각에 불안불안한 마음 한편에 있었는데 이런 걸 방지하기 위해 실수를 줄일 수 있는 방향으로 코드를 짜는 방법을 가르쳐줘서 마음에 들었다.

결론적으로 가격 때문에 조금 망설여지긴 했지만 충분히 좋은 강의라고 생각한다. 그리고 좀 쉬면서 고민을 해보고 다음주에는 COMP1000: 소프트웨어 공학용 수학을 결제하고 들어볼 생각이다.

 

노마드코더(nomad coder) 에어비앤비 클론 코딩 후기

2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이 코스를 통해 python과 Django를 배울 때는 재밌어서 하루도 빠짐없이 코딩을 했습니다. 5월에는 천천히, 6월에는 2배 정도 빠르게 했�

00pen.tistory.com

약 5개월에 걸쳐 nomad coder을 통해 풀스택 개발자로 성장하기 위해서 강의도 많이 들었고, 이제는 정말 직장에서 일을 하면서 돈도 벌고, 기업에서 경험을 쌓아야 겠다는 생각에 나만의 웹사이트나 앱을 만들어 포트폴리오를 만들어보고자 생각이 들었습니다.

계획은 자신의 자산 상태를 여러 그래프로 보여주는 Dashboard를 만드는 것입니다. 에어비앤비 클론 코딩을 할 때는 오직 Django로만 풀스택 개발을 했지만 기업에서는 대부분 백앤드와 프론트앤드를 나누어 개발하는 것이 일반적이기 때문에 그에 맞추어 Django (+ Rest Framework)로 백앤드 API 서버를 만들고, React와 Redux를 이용해 프론트엔드를 만들 예정입니다.

저는 2주일 안에 끝내는 것으로 잡고 싶었으나 주변 개발자님들의 말을 들어보면 그렇게 마음대로 되지는 않을 거라는 말을 들어 3주~4주를 목표로 잡았씁니다. 지금은 이미 백앤드 API 서버를 만들고 있는 중이고, 시작한지 3주가 되는 날은 8월 15일이네요.

 

프로젝트명은 asset-dashboard.

지금까지 진행상황은...

 

7월 25일 - 간단하게 머리 속 계획을 그림으로 그려보고, Django와 더불어 필요한 것들 설치

개발환경은 간단하게 Ubuntu 16.04(WSL로 윈도우에서 사용), VS Code로 했고, pipenv로 가상환경을 꾸려서 함

 

7월 26일 - 일단 백엔드 API에 필요한 주식정보(현재가, 종목코드) 가져오는 crawler 코드 먼저 짬

https://00pen.tistory.com/84

 

Marketdata.krx 종목코드, 현재가격 가져오기

주식데이터를 가져오는 방법으로는 증권사 api도 있고, github에 올려져 있는 여러 코드들도 있지만 Django 백앤드에 필요한 상장주식코드(ETF 포함)만 가져오는데 무겁게 하기 싫어 코드를 짜보았습

00pen.tistory.com

 

7월 27일 - crawler 코드 정리하고, Django에서 db로 넘겨주도록 commad 생성, 주요 Model과 Serializer, View 생성

Github 주소  - https://github.com/qhqnf/asset-dashboard

https://00pen.tistory.com/87

 

Django Rest framework 와 React로 포트폴리오 만들어보기(2)

https://00pen.tistory.com/85 Django Rest framework 와 React로 포트폴리오 만들어보기(1) 노마드코더(nomad coder) 에어비앤비 클론 코딩 후기 2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이..

00pen.tistory.com

 

* React Native를 이용하여 개발하면서 Expo라는 앱을 사용하게 되었는데 Dev tool을 사용하면 갑자기 네이버도 안 들어가지고 '사이트에 연결할 수 없습니다' - ERR_CONNECTION_FAILED 라고 떠서 stackoverflow를 참고하여 해결한 방법입니다. (일반적인 경우에도 해결방법이 될 지는 모르겠네요...)

해결방법을 알려준 stackoverflow의 유저도 저와 굉장히 유사한 환경에서 개발을 하고 있었는데

1. WSL을 이용해 Ubuntu를 사용

2. React-Native와 Expo를 사용해 개발 중

위와 같은 상황에서 Expo Dev-tool을 사용하다보면 갑자기 인터넷이 연결되어 있지만 네이버와 같은 평범한 사이트도 연결이 되지 않는 상황이 벌어지고 있는 것 같습니다. 컴퓨터를 껐다가 키면 해결되긴 하지만 번거롭기 때문에 그보다 쉬운 방법을 알려주었습니다.

1 - WIN+R -> services.msc 검색 -> 서비스 창이 뜸
2 - LxssManager 찾기
3 - 우클릭 후 재시작

'네이티브 ELF 이진 파일의 실행을 지원합니다.' 라는 걸 보니 확실히 React Native와 관련이 있는 거 같긴한데... 왜 이러는 걸 까요... 아무튼 재시작을 하면 모든 사이트들이 잘 돌아가긴 합니다...ㅋㅋ

출처: https://stackoverflow.com/questions/58159333/err-connection-failed-on-chrome-ie-after-20-minutes-of-working-when-internet-is

+ Recent posts