본문 바로가기

전체 글

[Springboot] 커피숍 만들기(1차 시도) - 도메인 모델과 테이블 설계 => 회원과 주문 테이블을 one to many 관계로 설정, 주문과 주문상품 테이블을 one to many 관계로 설정 후, 재고 테이블을 따로 두어 컵,원두,빨대 등 각 커피를 만드는 재료들의 재고를 관리한다. (총4개의 테이블) - 구현 => 임시로 구현을 하던 도중 도메인 및 테이블 설계가 너무 잘못 되었다는걸 확인하고 다시 구현 하기로 하였다. - 문제점 => 상품테이블 및 도메인이 없어, 체계화된 재고관리가 불가능하였다. (컵,빨대 및 홀더 등의 공통 재고를 위한 테이블과 개별 상품을위한 상품 테이블을 분리하여 관리해야 하며, 추가로 상품의 종류별로 테이블 및 도메인을 두어(커피,스무디,라떼 등) 관리한다.) 더보기
스프링? 스프링 부트? 스프링이란? - 크게 Dependency Injection, Inversion Of Control 의 2가지 특징으로 스프링을 설명할 수 있다. - 위의 특징들로 인하여 결합도를 낮추고 이식이 용이하기 때문에 다양하고 자유롭게 테스팅 할 수 있으며 보다 질좋은 프로그램을 개발하기 용이하다. - 설정이 까다롭고, 기본 프로젝트를 세팅하는데에 너무 많은 시간이 소요된다. 스프링부트란? - 스프링의 문제점을 해결하기 위하여 탄생 - AutoConfiguration을 이용하여 개발에 필요한 내부 dependencies를 관리한다. - 어떠한 라이브러리를 사용하기위한 하위 라이브러리들의 버젼 호환문제를 해결하기 위하여 스프링부트 스타터를 사용한다. - 아래와 같이 start.spring.io 에 접속한 후, 빌드.. 더보기
도커? 쿠버네티스? 컨테이너? 가상머신? - 다양한 종류의 컨테이너가 존재하고 도커는 컨테이너 기술 중 하나이다. 컨테이너란? - 컨테이너는 application을 실제 구동 환경으로부터 추상화 할 수 있는 논리 패키징 메커니즘을 제공. - 위는 가상머신과 컨테이너의 구조를 나타낸다. - 위의 그림에서 볼 수 있듯이, 컨테이너는 운영체제 수준에서 가상화를 실시하여, 다수의 컨테이너를 os커널에서 직접구동합니다. - hypervisor는 다수의 가상머신이 하나의 물리 시스템을 공유할 수 있도록 허용, 각 가상머신은 격리된다. - 컨테이너가 훨씬 가벼운 구조라고 할 수 있으며, 속도가 상당히 빠르며 메모리도 더욱 적게 차지합니다. - 컨테이너를 통해, 개발자는 다른 어플리케이션과 분리된 예측 가능한 환경을 생성할 수 있습니다. - 컨테이너는 cpu.. 더보기
코딩테스트 시간,공간 제한내에 풀기!! - 파이썬은 1초에 대략 2000만번의 연산이 가능하다고 전제하면 안전하다. - 대부분 코딩테스트 문제의 제한은 시간제한이 1-5초, 메모리가 128MB-512MB정도 이다. - 시간제한이 1초인 문제를 만났을경우(대부분) N의 범위가 500이하인경우 O(N^3)으로도 충분히 해결가능하고, 2000이하인 경우, O(N^2)인 알고리즘으로 해결 가능하며 N의 범위가 100,000이하인 경우 O(NlogN)알고리즘으로 해결 가능하고 10,000,000인 경우 O(N)알고리즘으로 해결이 가능하다. - 경험을 토대로 N이 만단위 이하일 경우 O(N^2)알고리즘으로 충분히 해결 가능하다. 그이상은 O(NlogN)알고리즘을 1순위로 염두해두는게 좋을것 같다. - 위는 1초가 주어졌을때 추천되는 입력 갯수에따른 알고.. 더보기
[부스트캠프 AI Tech] day18 Review seq2seq 단어 시퀀스를 받아 단어 시퀀스를 출력하는 자연어 처리 모델로 입력된 단어 시퀀스를 처리하는 인코더 rnn과 출력할 단어 시퀀스를 처리하는 디코더 rnn으로 이루어져 있다.(파라미터 공유x) 느낀점 이론설명, 실습과 과제를 통해 해당 모델을 더 잘 이해할 수 있었다. Peer Session 과제 리뷰, cnn을 이용한 사진을 종류별로 판별하여 삭제하거나 저장하게 해주는 어플리케이션 소개(내가 발표하였다.)등에 대해 이야기 하였다. 더보기
[부스트캠프 AI Tech] day16 Review NLP 자연어를 처리 low level 단계에선 문장을 의미별로 분해한다. stemming은 단어의 어근을 추출(의미) word and phrase level에선 New York Times와 같은 띄어쓰기를 포함하는 것을 하나의 고유 명사로 인식 해야한다. Sentence level에선 문장의 긍정,부정을 판별한다. Multi sentence and paragraph level에선 문장간 논리적 내포나 모순을 예측하거나 문서를 요약하거나 대화를 수행할수 있는 시스템, 독해기반의 질의 응답등 고차원의 작업을 수행한다. 텍스트마이닝 과거의 정보들을 빠르고 지능적으로 처리하여 키워드를 추출하거나 분석한다. Bag of Words 원핫 인코딩을한다, 단어의 순서는 고려할 수 없다. Naive Bay.. 더보기
[부스트캠프 AI Tech] day15 Review Generative model 생성몸델이란 주어진 학습 데이터를 학습하여 학습데이터의 분포를 따르는 유사한 데이터를 생성하는 모델 학습 데이터 속에 샘플마다 픽셀들의 분포를 알 수 있응ㄴ데, 이를 이용해 유사한 데이터를 생성한다. 학습데이터의 분포와 차이가 적을수록 더욱 실제와 유사한 데이터를 생성할 수 있다. 베르누이 분포 매 시행마다 오직 두가지 가능한 결과만 일어난다고 가정할 때, 두개중 하나의 값으로 표현되는 데이터확률분포 Peer Session 팀원들끼리 깃헙다루는 명령어들에 대하여 공부하였고(작업을 진행하다가 이전 커밋상태로 돌아가기위한 checkout 명령어, fork한 저장소를 최신 원본과 동기화 시키기위한 방법,다른 브랜치의 일부파일 복사하는 방법 등) LSTM을 라이언이 공.. 더보기
[부스트캠프 AI Tech] day13 Review CNN(Convolutional Neural Network) Convolution이란 이미지를 블러처리 하거나, 뽀샤시해지는 효과, 강조하는 효과등을 내기위한 과정이다. 커널이라고 하는 행렬의(stride와 padding에 따라 이동하는 방법이 바뀐다) 이동에따라 결과값이 도출된다. Stride는 옆으로 몇칸씩 건너가며 연산을 수행할 지 알려주고, Padding은 연산을 적용할 데이터의 테두리를 얼마두께로 두를지를 알려준다. 1x1 convolution layer는 말 그대로 input채널과 행과 열의 사이즈가 같다. 하지만 차원이 더 적을 수 있다. 차원의 수를 줄임으로써, 파라미터의 수를 줄여 더 효율적으로 모델을 구성하기 위하여 사용한다. AlexNet,ResNet,VGGNET,Goog.. 더보기