오도원입니다.

건강과 행복을 위하여

반응형

전체 글 305

나의 첫 현장실습에 대해서 후기를 남긴다.

1. 왜 현장실습을 지원했는가. [학교와 현업은 무엇이 다른가] 저는 첫 현장실습을 (주)컬처팩토리에서 했습니다. 현장실습을 지원한 이유는 실무 경험을 해보고 싶었습니다. 정보컴퓨터공학부(이하 컴공)에서 실험과목에서 착수보고서, 중간보고서, 결과보고서를 쓰고, 팀프로젝트에서 코드관리 등을 하면서 가졌던 궁금증은 바로 '이것이 현업에서도 쓰일까?' 였습니다. 물론 현업에서도 여러 업무툴을 쓰고, 보고서를 작성하겠지만 어떤 점이 다르고, 어떤 식으로 체계화가 되어있는지 직접 경험해야겠다는 생각이 들었습니다. 그래서 이번 20년도 여름방학 때 현장실습을 지원했습니다. 2. 왜 컬처팩토리인가 [수많은 기업과 컬처팩토리는 무엇이 달랐는가] 다른 학과 현장실습과 컴공 현장실습의 가장 큰 차이점은 바로 기업의 수이다..

일상 2020.09.01

벤더스터. 0901

업무 1. rest api 2. aws vpc 3. 데이터베이스 4. 장고, 자파 aws 람다 또는 인스턴스를 생성 후 rest api를 올려서 rds에 적용하는 것을 한 후에 코드 인수인계. 1. IAM AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다. 2. Amazon VPC Amazon Virtual Private Cloud(Amazon VPC)에서는 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 ..

Development/TIL 2020.09.01

모바일에서 유튜브 실행시 화면이 갑자기 밝아지는 현상 해결방법

해결방법 먼저 드립니다. 설정 -> 우측상단 돋보기 -> 동영상 입력 -> 동영상 향상 기능 동영상 향상 기능을 끄면 된다. 여기서 '설정'은 유튜브 설정이 아닌 스마트폰 자체의 '설정'을 말합니다. 언제가부터 모바일로 유튜브를 들어가면 화면이 갑자기 밝아지는 현상이 발생했다. 그래서 밝기를 낮추면 다른 어플리케이션을 사용할 때 화면밝기가 어두워서 불편하다. 이것은 마치... 동영상 향상 기능을 끈다

인생꿀팁 2020.08.28

20년도 2학기 진행방향 코어멤버 회의

1. 방향성 학생 개발자의 네트워크를 제공 기술스택에 대한 전적인 지식의 제공기능을 최소화로 축소 학과 학술동아리보다는 중앙동아리의 성격을 지향 2. 인원 현재 2학기 활동 투표자 36명 앞으로의 진행방향을 공지하면 반드시 36명도 축소될 것. 축소된 인원들 중 추가로 뽑아서 32명(~36명)으로 맞출것. 코어멤버 : 8명(인원은 미정, 확정 : 도원(리드), 혜원, 수환, 현지, 동근, 태형, 승익) 3. 코어멤버 1년 활동 막학기 코어멤버 활동 축소하는 방향으로 절충 4. 2학기 활동사항 1) 필수 활동(수료조건) PNU DSC 자체해커톤 공식대회 참여(해커톤, 공모전) 삭제 학기 프로젝트 2) PNU DSC 자체 해커톤 분기별로 1회 진행(중간, 기말, 총 학기 중 2회) 전체참여 3) 공식대회 참..

PNU DSC 2020.08.27

어부의 고기잡이

1. 문제 현재 위치에서 N미터 떨어진 곳까지 물고기가 얼마나 있는지 주어진다. 정확히 M마리의 물고리를 잡고자 할 때 그물은 딱 한번 내리고 딱 한번 올릴 수 있다. 이때 정확히 M마리를 잡을 수 있는 경우의 수를 구하라. 예를 들어 5 3 7 2 1의 물고리가 존재할 때, 10마리의 물고리를 잡을 수 있는 경우의 수는 위와 같이 2가지가 존재한다. 가장 밑의 경우 떨어져있으므로 불가능한다. 2. 입력 3. 출력 가능한 경우의 수를 출력한다. 4. 알고리즘 : 투포인터 그물을 내리는 위치, 그물을 올리는 위치를 가리키는 두개의 포인터를 이용해서 구할 수 있다. 왼쪽에서 시작하기 때문에 물고기가 너무 적다면 그물을 올리는 위치를 오른쪽으로 이동하고, 물고기가 너무 많다면 그물을 내리는 위치를 오른쪽으로 ..

수열 만들기

1. 문제 수열에 있는 연속된 원소들의 합을 이용하여 새로운 수열을 만들 수 있다. 예를 들어 1, 2, 3, 4, 5와 같은 수열이 있다고 했을 때, 1, 2를 합쳐서 3, 3, 4, 5 또는 2, 3, 4를 합쳐서 1, 9, 5를 만들 수 있다. 모든 원소를 합쳐서 15 등의 수열을 만들 수도 있다. 두 개의 수열이 주어질 때, 두 수열을 같은 수열로 만들 수 있을 때, 만들수 있는 가장 긴 같은 수열의 길이를 구하는 것이다. 2. 입력 3. 출력 두 수열을 똑같은 수열로 만들 수 있다면 그 수열의 최대 길이를, 만들 수 없다면 -1을 출력한다. 4. 알고리즘 : 그리디, 투포인터 첫번째로 두 수열의 총합이 다르다면 절대로 같은 수열로 만들 수 없다. 해당 확인이 끝났다면 투 포인터를 이용해서 원소들..

다리 건설

1. 문제 강의 상부와 하부를 연결하는 다리를 건설해야한다. 다리는 여러 지점으로 나눠져있고, 같은 번호의 지점끼리만 연결할 수 있다. 다리를 건설하기 위해 미리 N개의 지점을 골라두었다. 강 한쪽은 1번부터 N번까지 순서대로 지점에 번호를 매겼지만 반대쪽은 무작위로 매겨져 있다. 같은 번호의 두 지점끼리만 다리로 연결할 수 있다. 두 개의 다리는 겹칠 수(교차될 수) 없다. 주민들의 편의를 위해 다리는 최대한 많은 개수를 건설하고자 한다. 2. 입력 첫 번째 줄에는 지점의 개수 N이 주어진다. (5

우주의 평화를 위하여

1. 문제 지구를 호시탐탐노리는 아주 질나쁜 외계인들을 다 무찔러야한다. 그러기 위해서는 외계인들의 행성인 A행성의 모든 기계들을 파괴시켜야한다. A 행성에 있는 모든 기계의 위치는 N x N크기의 격자판 상에 나타낼 수 있다. 격자판 위의 모든 기계가 같은 종류의 기계라면 단 한 번의 공격으로 모든 기계를 파괴할 수 있다. 만약 격자판 위의 기계들 중 하나라도 다른 종류의 기계가 있다면, 4개의 구획으로 나누어 다시 기계를 확인한다. 모든 기계가 파괴될 때까지 2-3단계의 작업을 반복한다. 2. 입력 첫번째 줄에는 격자판 크기 N이 주어진다. 이때 N은 항상 2^k(2의 지수승) 형태이다. 두번째 줄부터 N x N 행렬에 기계번호 3이하의 자연수가 주어진다. 3. 출력 기계의 최소 공격횟수 4. 알고리..

HTTP / Nodejs. request entity too large error. Error 413

body size가 너무 커서 발생하는 에러이다. client_max_body_size 설정 때문이다. 대용량의 request를 보내지 못 하도록 제한을 건다. default값은 1MB이다. request의 Content-Length 헤더값이 여기 설정된 값을 초과할 수 없다. POST나 PUT 등의 request 사이즈 제한을 할 수도 있지만, 악의적으로 대용량의 파일을 업로드해서 디스크를 가득 채우는 경우를 방지하는데 사용된다. 1. nginx.config 파일을 수정한다. 파일의 위치는/etc/nginx/nginx.conf 이다. default size가 1mb이므로 이것을 0mb로 바꿔서 제한을 없애거나 늘린다. nginx.conf 파일에서 http, server, location에 설정이 가능하..

컴퓨터공학/웹 2020.08.24

Javascript. 길이 n의 array를 특정 값으로 초기화하기; How to initialize an array's length.

1. 길이 n의 array생성 let arr = new Array(n); 2. array의 값을 k로 초기화 arr.fill(value); 길이 n 배열 생성 및 초기화 let arr = new Array(n).fill(value); 주의할 점 : n차원 배열 초기화는 안된다. n차원 배열을 초기화할 때 .fill(new Array())를 하게되면 같은 주소를 공유하는 문제가 발생한다. 예를 들어 2차원 빈 배열을 초기화한다고 해보자. let array2D = new Array(4).fill(new Array()); console.log(array2D); 길이 4의 2차원배열이 제대로 초기화된 것처럼 보인다. 하지만 index 1에 값을 넣는 순간 문제가 발생한다. array2D[1].push(2); 배..

Javascript. array of array에서 가장 긴 array index 찾기

reduce 함수를 사용하면 쉽게 구할 수 있다. let idxOfMaxLen = arrays.reduce((idx, tmpArr) => { tmpArr.length > arrays[idx].length ? idx + 1 : idx }, 0) 예시 var arrays = [ [1,1,1,1,1], [1,1], [1,1,1,1,1,1,1,1,1,1], [1,1,1,1] ] var indexOfLongestArray = arrays.reduce((idx, arr) => arr.length > arrays[idx].length ? idx + 1 : idx , 0) // print result: console.log( indexOfLongestArray ) 참고. https://stackoverflow.com/..

Nodejs. axios를 활용한 http 요청

axios로 특정 url 위치의 데이터를 받아오는 방법에 대해서 알아보자. router.get('/', async(req, res) => { res.json(); }) 위의 라우트에서 특정 url 데이터를 받아오고 해당 데이터를 json으로 전송하고자 한다. try { var ret = await axios.get('http://[api url]'); }catch(err) { console.log(err); } 받아온 response객체가 ret변수에 저장된다. router.get('/', async (req, res, next) => { try{ var ret = await axios.get('http://[api url]'); }catch(err){ console.log(err); } console...

Development/Node.js 2020.08.18

ASYNC AWAIT팀. 종합 게임 패치노트 서비스 웹 어플리케이션

1) ASYNC AWAIT 팀 https://github.com/ohdowon064/async_await ohdowon064/async_await PNU DSC 제 1회 해커톤 약속알림 웹어플리케이션. Contribute to ohdowon064/async_await development by creating an account on GitHub. github.com 저를 포함하여 문건우님, 최정은님으로 구성되었습니다. 저희가 개발한 것은 여러 게임들의 패치노트를 한번에 볼 수 있도록하는 게임 패치노트 총합서비스 웹 어플리케이션을 개발했습니다. 백엔드는 nodejs의 express 프레임워크, 프론트는 React.js, DB는 mongoDB를 사용했습니다. mongoDB를 사용한 이유는 빠르게 개발해야하..

PNU DSC/해커톤 2020.08.14

Python. windows cmd python console clear; 윈도우 cmd 화면에서 python 콘솔 초기화하는법

1. os 모듈이용 > import os > clear = lambda : os.system('cls') > clear() 물론 clear변수에 할당하지 않고 os.system('cls')만 해도된다. 참고로 리눅스 환경에서는 'cls'가 아닌 'clear'이다. 2. ANSI 이용 > print("\x1B[H\x1B[J") 해당 문자열을 출력하면 초기화된다. 하지만 이 문자열을 항상 외우고 다니기에는 어려우니 os를 이용한 방식을 추천한다.

Development/Python 2020.08.12

Javascript. JSON 데이터 추가(add) / 삭제(delete)

An object is an unordered set of name/value pairs. JSON 데이터를 추가, 삭제하는 방법 1. 추가 obj.key_name = value; 2. 삭제 delete obj.key_name; 3. 예시 let person = { name : "오도원", age : 24, job : 'student' }; console.log('>>>>> person'); console.log(person); console.log(">>>>> add gender"); person.gender = "male"; console.log(person); console.log(">>>>> delete job"); delete person.job console.log(person);

반응형