본문 바로가기

분류 전체보기79

AWS에서 Tomcat에 Spring 서버 실행하기(오류 해결 부분) 1. 오류 확인 AWS Backend 서버를 넣어둔 instance가 작업하기 힘들 정도로 느려졌다. Tomcat을 start하여 Spring 서버를 띄우려고 하니 계속 반복되는 로그만 찍힌다. 로그 확인할 때 사용한 명령: $ sudo tail -f logs/catalina.out 로그들을 확인해보니 GC 설정을 바꿔주라는 오류 발견 명령어 $ top으로 실행중인 프로세스들을 확인해보니 Tomcat 실행에 관련된 프로세스들이 메모리의 거의 대부분(99퍼센트)를 잡아먹고 있었다. 좀비 프로세스들이 존재하였다. 2. 원인 파악 메모리 부족 - 로그에서 나왔듯이 ParalleGCthreads 설정을 바꿔주어 메모리 확보가 필요 3. 해결 -GC 설정하는 부분 참고: http://soul.tistory.com.. 2019. 12. 4.
2019 카카오 블라인드 코딩테스트 (프로그래머스, Java, 실패율) 1. 실패율 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 | 프로그래머스 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 programmers.co.kr 알고리즘 설명: 실패율을 구하고 Comparator.. 2019. 12. 1.
2018 카카오 블라인드 코딩테스트 3차(프로그래머스, 모든 문제, Java) 1. N진수 게임 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 programmers.co.kr 알고리즘 설명: 10진수를 주어진.. 2019. 11. 23.
2018 카카오 블라인드 코딩테스트 1차(프로그래머스, 모든 문제, Java) 1. 비밀지도(난이도: 하) 문제링크: https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 programmers.co.kr 알고리즘 설명: 단순한 2진.. 2019. 11. 14.
Https와 Http2 https 모듈 웹 서버에 SSL 암호화를 추가한다. GET or POST 요청을 할 때 오고 가는 데이터를 암호화하여 중간에 다른 사람이 요청을 가로채더라도 내용을 확인 못하게 해준다. 기본 http 서버 코드 const https = require('http'); const fs = require('fs'); https.createServer((req, res) => { res.write('Hello Node!'); res.end('Hello Server!'); }).listen(8080, () =>{ console.log('8080번 포트에서 서버 대기 중'); }); 위 서버를 암호화하기 위해 https 모듈 사용 const https = require.'https'); const fs = req.. 2019. 11. 6.
Rest API와 라우팅 REST API는 주소 외에도 HTTP 요청 메서드라는 것을 사용한다. 요청 메서드 종류 GET, POST, PUT, PATCH, DELETE 예시 서버 코드) //restServer.js const http = require('http'); const fs = require('fs'); const user = {} http.createServer((req, res) =>{ if(req.mothod === 'GET'){ if(req.url === '/'){ return fs.readFile('./restFront.html', (err, data) => { if(err) { throw err; } res.end(data); }); }else if(req.url === '/about'){ return fs... 2019. 11. 6.