2018의 게시물 표시

Clean Architecture with .net

이미지
안녕하십니까. 이 글은 Clean 에 대한 글이며 다음과 같은 자료를 참고하였습니다. 로버트 C. 마틴( Robert  C .  Martin )의 책인 Clean Architecture Youtube Clean Architecture with ASP.NET Core 2.1 Clean Architecture Clean Architecture Clean Architecture는 Hexagonal Architecture라고도 불리며 port and adapter 라고도 불리는 개념 입니다. 개인적으로 DDD, MSA를 공부하게 되는 일이 생겨서 공부하게 되었습니다. 아래 그림은 동영상의 Overview 피피티 입니다. 아래 그림의 원 모양을 경우에 따라서는 다각형으로 표현하여 이에 대하여 Hexagonal Architecture라고 부르고 각 Layer끼리의 연결은 port and adapter 형식으로 한다고 합니다. 각 레이어를 분리하여 이를 통하여 비즈니스 로직, 프레임워크 의존적인 로직, 데이터 베이스 로직, 뷰 로직등을 각각 분리 합니다. 각각 레이어 상의 의존성은 안쪽으로만 가능하도록 합니다. 각 Layer의 관계를 추상화, interface (port)로 연결하여 느슨한 결합이 가능하도록 합니다. Clean Architecture의 Core가 추상화 인듯 합니다.  이러한 분리를 통하여 원할한 테스트, 프레임 워크, 디비가 변동하여도 쉽게 변동 가능한 이점이 존재 합니다. Domain Layer 도메인 레이어는 아래와 같이 Entities, Value Object와 같은 도메인 객체를 표현 합니다. Annotation 데이터를 표현하는데에 있어서 보통 OOP 관점으로 데이터에 Annotation을 통하여 제약을 주곤 합니다. 발표자는 그러한 어노테이션 보다는 아래 코드와 같이 해당 로직을 바깥으로 빼는것을 추천 하였습니다.   --code-- --code-- 위와 같은

window 10 특정 port를 사용하는 프로세스 pid 찾기,kill

이미지
안녕하십니까. 윈도우를 사용하던 중 특정 포트를 사용중인 프로세스를 죽여야 할 필요가 있게 되었고 방법이 제대로 나와 있지 않아 블로그로 공유 하려고 합니다. 상황 : 80 포트를 사용중인 process를 죽여라! netstat -ano netstat -ano 해당 명령어를 통해서 pid가 3016인 것을 알게 되었습니다. 작업 관리자 -> 컬럼 오른 클릭 -> pid 클릭 작업 관리자 오른 클릭 위처럼 작업 관리자의 탭을 오른 클릭하면 pid를 찾을 수 있습니다. 구글에 검색해보면 그냥 pid 탭에 있다고 해서 찾기 어려웠는데, 여기 있네요;; pid에 따른 작업 위치 -> 오른 클릭 후 작업 끝내기 작업 끝내기 위의 그림 처럼 삭제 하려는 작업을 오른클릭 후 작업 끝내기 버튼을 클릭하면 끝

tensorpack의 Faster RCNN 예제 돌리기

이미지
안녕하십니까. 딥러닝을 공부하는 도중, 오브젝트 인식하는데에 쓰이는 알고리즘이 Faster RCNN이라고 하여서, 관련 오픈소스를 공부하고 있습니다. Object Detection with Faster RCNN 물체를 인식하는데에 있어서 물체가 있는 위치를 예측하는 region proposal method와 그 위치에서 이미지의 특징을 분석하는 region-based CNN(R-CNNs) 가 있습니다. 해당 알고리즘의 이전 버전인 FastRCNN도 성능이 좋아진 편이지만, 여전히 CPU연산이 있어서 이를 GPU 연산으로 바꾼것이 FasterRCNN입니다. tensorpack 여러 오픈소스중  tensorpack 이라는 오픈소스의 예제 코드를 돌려보고 포스팅 합니다. tensorpack tensorpack은 tensorflow의 Wrapper이며, 여러 알고리즘의 예시 코드가 있습니다. 그중 FasterRCNN 도 한 예시 입니다. tensorpack은 어려운 조작법을 가진 tensorflow를 쉽게 조작할 수 있도록 하는 것이 모토 입니다. 그를 통해 쉬운 사용과 좋은 성능을 가져가려고 합니다. tensorpack architecture 직접 만져봐야 알 수 있겠지만, 전반적인 구조로는 파이썬 라이브러리들을 효율적으로 가져오는 Python Reader, zeroMQ를 통해서 큐를 생성, 멀티 GPU를 통한 분산 학습등을 처리 합니다.  사용법 https://github.com/tensorpack/tensorpack 의 링크에 들어가 tensorpack 코드를 다운 받습니다. tensorpack directory의 코드를 pip 명령어를 통해서 패키지화 합니다. pip install tensorpack을 하면 다운로드가 되지만 버전이 이전 버전이라 잘 안돌아 갑니다. 해당 코드의 https://github.com/tensorpack/tensorpack/tree/master

vue로 pwa 구현하기

안녕하십니까. vue를 통해서 pwa를 구현할 경험이 생겨서 그에 대하여 포스팅을 작성 합니다. 작성중..

파이썬으로 클로바 챗봇 개발기

이미지
안녕하십니까. 모두의 연구소와 클로바에서 Santa Clova(산타 클로바) 라는 프로그램을 통해서 Clova 인공지능 스피커의 챗봇 어플을 개발하는 중 입니다. 그에 대한 포스팅과 후기 등을 올리려고 합니다. 산타 클로바 코드 링크 : https://github.com/Myeongjoon/clova_yoriyori 작성중 입니다..

제 3회 네이버 오픈소스 세미나 후기

안녕하십니까. 이번 09/04 화요일 저녁 6시 즈음에 네이버에서 진행하였던 오픈소스 세미나에 대하여 공유하려고 합니다. 내용은 작성 중.. 링크 : https://naver.github.io/OpenSourceGuide/book/Seminar/3.html 1. Contribution, 그 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경 NAVER 2. Maglev Hashing Scheduler in IPVS, Linux Kernel - 송인주 NAVER 3. Next Generation Spring Security OAuth 2.0 - 이명현 NAVER

파이콘 코리아 2018 후기

이미지
파이콘 코리아 2018 지난 2018/08/18(토) ~ 19(일)에 파이콘이 개최되었고, 회사에서 지원을 받아서 다녀오게 되었습니다. https://www.pycon.kr/2018/ 대부분의 머신러닝에 관한 세션을 들었고, 그에 대하여 한 포스팅에 상세히 설명은 어렵지만 간단한 후기 등을 작성 하려고 합니다. 혹시라도.. 이 글을 읽게 되실 분들 중, 이 세션은 내 발표인데 포스팅 안했으면 좋겠다 싶으신 분들은 바로 댓글 부탁드립니다. 세션들을 블로그에 박제(?) 하려는 의도는 아니고, 지난 파이콘 세션들이 기억이 안나는 나에 대한 채찍질일 뿐 입니다. 머신러닝으로 치매 정복하기 링크 :  https://www.pycon.kr/2018/program/36 슬라이드 :  https://www.slideshare.net/ParkSejin/2018-110482902 치매, 알츠하이머는 치료가 어렵고, 조기 진단을 통해서 진행 속도를 늦추는 정도에 불과 하다. 모든 성인은 노화 하면서 뇌가 위축이 되고, 치매가 걸리는 사람들은 뇌의 특정한 위치에서 다른 변화가 있을 것이며 이를 찾는것이 프로젝트의 목적. 상용 프로젝트는 성능이 안나오거나 기능이 부족한게 현실이다. 속도가 나오며, 진단을 통한 위험도를 제시하며, 뇌의 영역을 시각화 하는것이 해당 프로젝트의 차별점. 해상도가 중요한 데이터에서 사용하는 High ResNet 일반적인 CNN 은 pooling을 통하여 레이어를 점차 작게 하면서 데이터를 축소 시키지만, 해당 문제에서는 객체가 인식 되어야 해서 해상도가 필요한데 이러한 이미지 인식에 사용되는 방식은 High ResNet. resnet의 구조는 중간에 뛰어넘는 지름길의 path를 두어서 성능을 향상 시켰다고 합니다. resnet 구조 소설 쓰는 딥 러닝 링크 :  https://www.pycon.kr/2018/program/28 슬라이드 :  https://speakerdeck.com/

RNN 에 대하여

이미지
RNN에 대하여 공유할 일이 생겨서 작성하는 RNN에 대한 포스트 입니다. RNN? RNN은 순차적인 데이터를 학습하는 뉴럴네트워크 입니다. 구글 번역기로 대표적인 자연어처리가 그 한 예 입니다. RNN의 입력값은 아래의 데이터처럼 순차적인 데이터인 𝓍가 들어 갑니다.𝓍의 예시로는 문장이 될 수 있습니다. 우리가 원하는 출력값인 о는 아래와 같이 입력값 처럼 순차적인 시퀀스 데이터가 나올 수 있습니다. 중간의 s는 Hidden State로 중간중간 결과마다 State값을 매긴 결과 이고, 수식은  . 으로 나타낼 수 있습니다. 아래 그림처럼 볼 수 있듯이 각 State마다 결과 값 о를 출력 할 수 있습니다. W,U,V는 파라미터 값 이고, 모든 State 마다 공유 합니다. RNN (https://aikorea.org/blog/rnn-tutorial-1/) Tensorflow로 짠 RNN Core Oreilly의 Learning TensorFlow의 RNN예제 를 분석 하려고 합니다. 아래 그림은 Tensorboard를 통해서 텐서플로우 코드를 도식화 한 그림 입니다. RNN의 Flow라기 보다는 딥러닝 자체의 플로우로 봐도 무방 해 보입니다. RNN 학습 로그를 Tensorboard로 분석한 결과 Input, Transpose 아래 코드는 RNN 예제 데이터인 mnist 데이터를 불러오고, 데이터를 Transpose 합니다. RNN States 아래는 Hidden State를 구하는 부분 입니다. RNN Output 아래 코드는 RNN의 출력값 o를 나타 냅니다. 출력값은 선형 방식을 사용하였습니다. RNN Train, Test 아래 코드는 위에서 쌓은 Tensor 객체를 통해서 Train과 Test를 진행 합니다. 결과 아래처럼 정확도는 97퍼센트로 나쁘지 않습니다. Iter 0, Minibatch Loss= 2.302837, Trai