코딩은 실력보다 시력이지

분류 전체보기 37

최종프로젝트 - AWS

우리가 만든 데이트 코스 검색 프로그램이 항시 작동하도록 하기 위해서 아마존 웹서버를 이용하기로 하였다. 웹페이지를 활용하기 위해서 플라스크를 활용하였다. import os import WordsSimilariryAlgorithm.Search as s import WordsSimilariryAlgorithm.DataFilter as df import WordsSimilariryAlgorithm.Tokenizers as t import WordsSimilariryAlgorithm.BlogTraking as bt import WordsSimilariryAlgorithm.GensimActive as ga import WordsSimilariryAlgorithm.TransWeb as tw import FaceF..

최종 프로젝트 - 이미지 학습(2)

사진을 크롤링하면 수백장이 되지만 해상도가 낮거나 학습에 활용하기 힘들다고 판단되는 것들을 거르고나면 실제 데이터는 100여장 수준으로 굉장이 적게 남았다. 그리고 이를 통해 학습을 시켰을땐 역시 원하는 수준의 결과가 나오질 않았다. 그렇기에 이를 해결할려면 이미지의 특징을 충분히 추출할 수 있을 정도로 깊은 수준의 CNN 모델이 필요한데, 프로젝트 마무리가 1주일도 채 남지 않은 시점이었기에 이는 불가능하다고 판단하였고 새로운 방법을 모색하였다. 그리고 전이학습(Transfer Learning)을 시키기로 생각하였다. 전이학습이란 기존에 만들어진 모델에서 이미지 특징을 추출 레이어를 활용, 분류 레이어만 직접 만드는 방법이다. 이번에는 얼굴의 특징을 가장 잘 추출 할 수 있는 것이 얼굴인식 대회에서 우..

카테고리 없음 2021.07.01

최종 프로젝트 - 이미지 학습(1)

초기 목표에는 없던 이미지 도용방지 / 닮은꼴 찾기 등을 추가하기로 하였다. 단순 성별구분 등이 아닌 특정인(ex. 연예인)을 정확하게 알려줄 수 있어야 하는데, 이와 같은 API 같은 것이 없으므로 여기 사용될 모델을 직접 만들기로 하였다. 이미지 학습에 많이 사용되는 Convolution Neural Network(이하 CNN)를 응용하기로 생각했고 이를 위해서 Tensorflow를 활용하기로 했다. 우선은 해외 사이트를 통해서 해외 연예인들의 이미지를 다운받을 수 있었기에 우선 이를 활용해서 모델을 만들어 보기로 하였다.(참고 블로그 : https://bcho.tistory.com/1176) 처음 해보는 작업이라 데이터 수집, 가공, tensorflow 코드까지 위 블로그에 나온 내용을 무작정 따라..

최종 프로젝트 - 자연어 처리

최종 프로젝트로 소개팅 코스를 추천해주는 소개팅 앱을 만들기로 하였다. 이용자가 어떤 키워드를 제시하면 이와 가장 유사한 소개팅 장소 등을 추천해주고, 이용자가 선택(체크)한 것들을 카카오 API 를 이용해서 최단경로를 추천해주는 것이 핵심 기능이다. 우리팀은 우선적으로 카카오의 블로그 검색 API를 활용하여 우리 프로그램에 사용될 데이터를 확보하기로 하였다. from sklearn.feature_extraction.text import CountVectorizer # sklearn 설치, CountVectorizer : 문서를 token count matrix로 변환하는 클래스. from sklearn.metrics.pairwise import cosine_similarity # sklearn 설치, ..

파이썬 - 성적처리

파이썬의 list, dict을 활용하여 성적을 처리하고 처리된 값을 pickle을 이용해 데이터로 저장하고 또 불러오는 코드. 각 기능 별로 함수를 만들어서 사용할 수 있도록 하였습니다. 하나씩 만들다가 생각이 났는데 생각해보니 파일 n개 입력하는건 그냥 입력하는 애를 n번 반복시켰으면 되는...;; import pickle import copy member_dict =[] label = ['kor', 'eng', 'math', 'sci', 'tot', 'avg'] #파일 쓰기 def data_save(member_dict): with open('grade.p', 'wb') as file: pickle.dump(member_dict, file) #파일 불러오기 def data_read(): with op..

GET,POST,Annotation,Bean을 활용한 회원가입 MVC2

1. GET 방식 : 데이터를 넘겨줄때 action 등과 같은 방법으로 url을 변경해줘야한다. 또한 url창에 데이터가 노출 되기 때문에 보안에 취약한 단점이 존재한다. GET Controller @RequestMapping(value = "personal/personal1", method = RequestMethod.GET) public String pinput3(HttpServletRequest request, Model model) { Personal personal = new Personal(); personal.setName(request.getParameter("name")); personal.setId(request.getParameter("id")); personal.setPw(reque..

Spring MVC 패턴

DispatcherServlet : FrontController를 담당하며 모든 http의 요청을 받아들여 객체들 간의 흐름을 제어한다. HandlerMapping : 클라이언트의 요청을 바탕으로 어떤 Handler(Controller)를 실행할지 결정한다. 쉽게 말해 url로 handler를 선택하는 기준이 된다. HandlerAdapter : Handler에 맞는 메소드를 호출하여 요청을 처리한다. viewResolver : 객체에 담긴 view name을 이용해서 view 객체를 찾거나 생성해서 리턴해준다. 매번 새로운 view 객체를 생성하여 dispatcherServlet에 리턴해준다.

AOP란?

AOP - Aspect Oriented Programing. Cross-cutting concern의 분리를 통해 모듈성을 증가시키는 프로그래밍 방법. 기존에 있는 코드를 수정하지 않은 상태에서 Advice를 추가하여 사용한다. Aspect : 공통기능 Advice : Aspect의 기능 그 자체 Pointcut : Jointpoint의 부분으로 실제로 Advice가 적용된 부분 Weaving : Advice를 핵심 기능에 적용하는 행위 org.aspectj aspectjweaver 1.7.4 AOP 사용을 위해 Spring의 pom.xml에 추가 해줘야 하는 코드 //메인 클래스 예시 import org.springframework.context.support.AbstractApplicationCont..

Spring bean Scope의 타입과 Annotation

DI - Dependency Injection 데이터(객체)와 코드가 분리되어 유지보수가 쉬워지며 유연하게 사용할 수 있게 된다. Singleton - 하나의 Bean 정의에 하나의 객체를 여러개의 레퍼런스가 참조. default 값이다. Prototype - 하나의 Bean 정의에 다수의 객체를 각각의 레퍼런스를 참조한다 request - 각각의 Http request는 자신만의 객체를 가진다. Web-arare Spring ApplicationContext 안에서 유요하다. Session - Http session 생명주기 안에 하나의 객체만 존재한다. Web-arare Spring ApplicationContext 안에서 유요하다. Globalsession - global http session 생..