전체 글
-
[Node.js] python-shell 이용하기졸업프로젝트 2021. 4. 10. 19:21
이용하기 위해서, 모듈을 설치한다. >> npm install python-shell 옵션에서 넘겨줄 인자를 선택할 수 있고 콜백함수에서 return된 데이터를 확인할 수 있다. const pythonShell = require('python-shell'); var options = { mode: 'text', pythonPath: '', pythonOptions: ['-u'], scriptPath: '', args: [arg1,arg2] }; pythonShell.PythonShell.run('실행스크립트', options, function (err, results) { if (err) console.log(err); else console.log(results); }); 파이썬 스크립트에서는 sys...
-
[Node.js] Redis 사용하여 파이썬 프로세스와 메시지 교환하기 (pub/sub)졸업프로젝트 2021. 4. 10. 18:22
화상 회의를 종료하였을 때 회의 채팅 기반으로 분석을 제공해준다. 기본적인 웹 서버는 node.js로, 분석은 파이썬 스크립트로 코드가 구성되어 있어 Redis의 메시지 큐를 이용하여 데이터를 송수신하였다. Redis의 동작 방식은 굉장히 간단하다. channel을 구독하고 있는 subscriber에게 publisher가 데이터를 publish 해주는 것이다. 이때 subscriber는 다수가 될 수 있다. 1. Redis 설치 공식적으로 Redis는 윈도우를 지원하지 않지만, Microsoft open tech 그룹에서 64비트 윈도우에서 사용 가능한 Redis를 오픈해 두었다. 따라서 윈도우 환경인 나는 이 방법으로 Redis를 설치하였다. 설치 방법은 블로그를 참고하였다. 1-1 다운로드 깃허브에 ..
-
[Node.js] express 서버 구축 (mySQL 연동)졸업프로젝트 2021. 4. 10. 14:52
Express 서버 구축하기 1. npm 프로젝트 시작하기 우선, Node.js를 설치합니다. node --version cmd 창에 위의 명령어를 쳤을 때 버전 정보가 나온다면 잘 설치가 된 것입니다. Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 원하는 위치에 프로젝트 파일을 생성하고 cmd 창에서 프로젝트 디렉터리로 이동한 뒤 아래 명령어를 입력합니다. npm init -y npm install --save express 이렇게 된다면 express를 사용할 준비가 완료되었습니다. 2. 기본 코드 구성 visual studio code를 사용하여 해당 폴더를 열어주면 아래와 같은 폴..
-
[JAVA] I/O BufferedReader와 StringBuilder프로그래밍 공부/JAVA 2021. 3. 24. 00:16
알고리즘 문제를 풀다 보면 메모리나 경과 시간이 중요한 문제들이 있다. 이 경우에 같은 코드를 작성하더라도 Scanner를 사용하면 메모리 초과가 나타나는 경우가 있다. Scanner보다 버퍼리더를 사용하기가 코드가 복잡해서 안 사용하고 있었는데 위와 같은 경우를 3번 정도 경험하니 BufferedReader 사용을 습관화하기 위해 정리를 한다.. 알고리즘 문제에서 출력이 많이 요구되는데 시간 초과가 나는 경우 StringBuilder를.. 메모리에서 초과가 나는 경우 BufferedReader를 사용하면 문제가 해결될 수도..? 실제로 성능을 비교해보면 Buffer가 훨씬 우세하다. Buffer를 사용하기 위해선 여러가지 import 또한 필요하다. import java.util.* 와 import j..
-
[JAVA] 정렬(Sorting)프로그래밍 공부/JAVA 2021. 3. 8. 20:12
Arrays.sort 자바에서 제공해주는 sort 메서드를 이용하여 쉽게 배열을 정렬할 수 있다. 오름차순 정렬(default): Arrays.sort() import java.util.Arrays //정렬 메서드를 사용하기 위해 포함한다. public class Main{ public static void main(String[] args){ int[] intArray = {5,1,3,2,4}; String[] stringArray = {"banana", "apple", "peach"}; Arrays.sort(intArray);//결과: 1,2,3,4,5 Arrays.sort(stringArray);//결과: "apple", "banana", "peach" } } 숫자와 문자와 같이 복합적으로 나타나는..
-
[JAVA] 형변환프로그래밍 공부/JAVA 2021. 3. 6. 11:59
String to int String s = "10"; int i = Integer.valueOf(s); int i = Integer.parseInt(s); //String -> double double d = Double.valueOf(s); //String -> float float f = Float.valueOf(s); int to String int i = 10; String s = String.valueOf(i); String s = Integer.toString(i); 정수 실수 //실수 -> 정수 double d = 10.10; float f = 10.10; int i = (int)d //i=10; int i = (int)f //i=10; //정수 -> 실수 int i = 10; double..
-
[JAVA] Collection 자료구조 정리프로그래밍 공부/JAVA 2021. 3. 4. 23:02
List : 배열과 비슷한 자료형, 원소의 개수가 가변적일 때 사용한다. - add(val): 배열에 끝에 val 삽입 - add(idx, val): idx 위치에 val 삽입 - set(idx, val): idx 위치의 원소를 val 값으로 변경 - get(idx): idx에 해당하는 값을 반환 - size(): 리스트의 개수 반환 - contains(val): 리스트에 val이 있다면 true 반환 - remove(val): val 삭제 후 삭제 결과 반환(true/false) - remove(idx): idx위치 값 삭제 후삭제된 항목 반환 - clear(): 리스트의 모든 값 삭제 ArrayList : List 인터페이스를 구현한 클래스 LinkedList : 원소들을 인덱스로 관리하는 array..
-
프로젝트 주제 변경 (화상회의 플랫폼 개발)졸업프로젝트 2021. 1. 11. 12:28
맥락을 파악하는 AI? 우리 프로젝트 주제인 AI 성우가 읽어주는 참여형 영어 동화 어플리케이션의 가장 큰 특징은 동화의 텍스트가 주어지면 인물들의 성별과 나잇대 같은 특성을 파악하여 적합한 목소리로 동화를 읽어준다는 점이다. 이것을 구현하기 위해선, 1. 등장인물 파악 2. 특성을 나타내는 단어 파악 (boy, girl, mother, father... ) 3. 등장인물 별 대사 구분 이 필수적으로 개발되어야 했다. 1,2번이 구현되었다는 가정 하에 3번은 어렵지 않게 구현할 수 있을 것 같았다. 일반적으로, 발화 동사 앞 주어를 발화자로 설정하고 특성에 맞는 TTS 목소리를 출력하는 방식으로.. 여러 가지 상황에 맞도록 예외처리를 해줘야 하지만.. 하지만, 1,2번 구현이 불가능처럼 느껴졌다. 동화 ..