오도원입니다.

건강과 행복을 위하여

반응형

전체 글 305

Javascript. 진짜로 Deep Copy하기

Javascript에서 Array 또는 Object를 복사하는 방법에 대해서 알아보자. 일단 결론부터 말하면 다음과 같이 하면된다. let deepArr = JSON.parse(JSON.stringify(arr1)); 다음은 자세한 설명이다. 1. 깊은 복사(Deep Copy)와 얕은 복사(Shallow Copy) 얕은 복사는 alias로 인해 같은 주소를 공유하기 때문에 복사한 객체를 변경하면 기존 객체도 같이 변경되는 문제가 발생할 수 있다. 따라서 복사를 할 때는 깊은 복사를 해야 추후 예상치 못한 문제를 방지할 수 있다. 2. 자바스크립트에서의 복사 1) 얕은 복사 - 대입 let arr1 = [ {"name": "오도원", "job": "player"}, {"name": "오도투", "job":..

제1회 PNU DSC 해커톤 후기

안녕하십니까! 부산대학교, PNU DSC Lead 오도원입니다. 리드를 맞게된 후 첫번째 DSC 활동으로 부산대 자체 해커톤을 진행하게 되었습니다. 8월 8일(토) 13시 ~ 8월 9일(일) 11시까지 진행한 이번 제1회 PNU DSC 해커톤이 많이 떨렸지만 많은 분들의 도움으로 잘 마무리되었습니다. 먼저 이번 해커톤에 참가해주신 열두분께 진심으로 감사의 말씀을 드리며, 조언해주신 정동님께도 감사하다는 말씀을 드립니다. 사실 이번 해커톤을 진행하면서 우려가 컸습니다. 예상보다 적은 참여인원 한번도 해본적 없는 시도 1. 예상보다 적은 참여인원 사실 반 이상은 참여할 줄 알았던 저의 크나큰 오산이었습니다. 50명 중에 12명이 참가했습니다. 2. 한번도 해보지 않은 시도 저에게는 모든게 낯설고 어려웠습니다..

PNU DSC/해커톤 2020.08.09

Javascript. sum of array, 배열의 원소 합구하기, reduce 함수이용

reduce함수를 이용한다. let arr = [1, 2, 3, 4]; let ret = arr.reduce((a, b) => a + b, 0); console.log(ret); Array.prototype.reduce() arr.reduce(callback[, initialValue]) callback 함수 구조. const callback = (accumulator, currentValue) => accumulator + currentValue; accumulator에 currentValue값이 누적된다. 참고. 1. reduce를 활용한 array sum https://stackoverflow.com/questions/1230233/how-to-find-the-sum-of-an-array-of-nu..

하노이의 탑을 풀어보자.

게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다. 한 번에 하나의 원판만 옮길 수 있다. 큰 원판이 작은 원판 위에 있어서는 안 된다. 하노이의 탑 문제는 재귀 호출을 이용하여 풀 수 있는 가장 유명한 예제 중의 하나이다. 그렇기 때문에 프로그래밍 수업에서 알고리즘 예제로 많이 사용한다. 일반적으로 원판이 n개 일 때, 2n -1번의 이동으로 원판을 모두 옮길 수 있다. 이 규칙들을 이용하여 63(64)개의 원판을 다른 막대로 전부 옮기는 것은 간단해 보이지만 '작은 원반 위에 큰 원반을 올릴 수 없다' 는 규칙은 의외로 크게 작용하는데, 이를 지키면서 n개의 원반을 한쪽 기둥에서 다른 쪽으로 옮기는 데 걸리는 최소 횟수가..

Javascript. JSON to String OR String to JSON; JSON을 string으로 변환; string을 JSON으로 변환

JSON 데이터의 타입은 Object이다. 1. JSON to String JSON을 string으로 바꿀 때는 JSON.stringify() 함수를 사용한다. jData = {"stage1":100, "stage2":100, "stage3":100}; sData = JSON.stringify(jData); console.log(`typeof jData = ${typeof jData}\njson=>`,jData, '\n'); console.log(`typeof sData = ${typeof sData}\nstring=>${sData}`); 2. String to JSON mysql, mariadb과 같은 db에서 json은 longtext타입으로 저장하기 때문에 데이터를 읽어왔을 때 json이 strin..

HTTP 에러 코드; 400, 404, 500 에러 등 설명

에러코드 의미 200 에러없이 성공적으로 페이지를 불러오거나 데이터를 전송 400 Bad REquest로써, 요청 실패. 문법상 오류가 있어서 서버가 요청사항을 이해하지 못한 경우 404 Not Found, 문서를 찾을 수 없는 경우. 클라이언트가 요청한 문서를 찾지 못한 경우에 발생. => URL을 잘 살펴봐야한다. 405 Method not allowed, 메소드 허용불가. Request 라인에 명시된 메소드를 수행하기 위한 해당 자원의 이용이 허용되지 않는 경우 발생. => 페이지는 존재하지만 접근하지 못하게 막거나 리소스를 허용안하는 경우 415 지원되지 않는 형식으로 클라이언트가 요청을 해서 서버에서 요청에 대한 승인을 거부한 경우 => ContentType, Content Encoding 데이..

컴퓨터공학/웹 2020.07.29

VSCode 터미널 오류 : 이 시스템에서 스크립트를 실행할 수 없으므로 ~.ps1 파일을 로드할 수 없습니다.

vscode에서 명령어를 실행하면 다음과 같은 상황일 발생한다. 이것은 스크립트 실행권한이 제한되어 있기 때문이다. 따라서 스크립트 실행권한을 변경해야한다. 1. windows powershell 관리자 권한 실행 2. 권한 설정 확인 3. 권한 변경 1. Windows Powershell 관리자 권한으로 실행 2. 권한 확인 get-help Set-ExecutionPolicy Restricted : PowerShell의 실행 권한 정책 중 기본적으로 적용되어있는 옵션. ps1 스크립트 파일을 로드하여 실행할 수 없는 정책 AllSigned : 신뢰된 배포자에 의해 서명된 스크립트만 실행 할 수 있는 정책 RemoteSigned : 로컬 컴튜퍼에서 본인이 생성한 스크립트만 실행 가능 또는 인터넷에서 다운..

인생꿀팁 2020.07.29

about package.json

애플리케이션을 개발할 때 package.json 파일을 이용하면 사용하는 확장 모듈에 대해 의존성 관리가 가능해서 편하다. package.json 파일은 기본적으로 CommonJS 명세를 따르며 JSON 형식 파일이다. 직접 작성할 수도 있고, npm init 명령어를 통해 자동으로 생성할 수 있다. 해당 애플리케이션을 위한 확장 모듈 정보는 npm install -save를 통해 모듈 정보를 추가할 수 있다. npm init npm install -save 1. 예시 { "name" : "test", "description" : "javascript's test programming.", "keywords" : ["util", "f", "server", "client", "browser"], "auth..

Development/Node.js 2020.07.29

Error Code: 2013. Lost connection to MySQL server during query

1. Error 2013 쿼리문을 실행했을 때, 다음과 같은 화면이나 하단 로그창에서 로딩아이콘만 계속 돌아가다가 2013에러가 발생할 때가 있다. 다음 에러는 해당 쿼리의 수행시간이 너무 오래걸려서 서버에서 끊어버린것이다. 본인은 계속 중간에 멈춰버려서 해당 쿼리문을 될 때까지 실행하다가 다음과 같은 문제가 발생했다. AWS RDS의 cpu 점유율이 100%를 찍은 것이다. 왜이렇게 됐나 살펴보니깐 문제를 발견했다. 서버에서 끊어버린 쿼리문은 데이터베이스 내에서는 계속해서 수행중이라는 것이다. 다음 쿼리는 작업중인 프로세스를 확인하는 쿼리다. show processlist; 해당 쿼리가 Execute 상태라는 것을 알 수 있다. 이때부터 문제가 발생했다. 쿼리가 안 끝나서 실행중인데 똑같은 쿼리를 실행..

2. 자바스크립트 엔진

1. 자바스크립트 엔진 자바스크립트 코드를 해석하고 실행한다. 가능한 짧은 시간내에 가장 최적화된 코드 생성이 목표 인터프리터를 말한다. 표준 인터프리터 또는 자바스크립트 코드를 바이트코드로 컴파일 하는 JIT 컴파일러로 구현가능 웹 브라우저를 위해 사용된다. 가장 잘 알려진 엔진은 구글의 V8엔진이다. 2. 종류 V8 : 구글에서 개발. C++로 작성되었으며, 구글 크롬과 Node.js에서 사용된다. SpiderMonkey, Rhino, JavascriptCore, Chakra, Nashron, JerryScript

Development/Node.js 2020.07.19

1. Node.js

1. Node.js 웹에서 서버를 개발할 때 쓰이는 언어 자바스크립트 기반의 프레임워크 2. 핵심 싱글 스레드에 비동기(Asynchronous)방식 자바스크립트 기반 프론트뿐만 아니라 백엔드 또한 js로 작성할 수 있게된다. 3. 자바스크립트(Javascript) 프론트엔드 -> HTML, CSS, Javascript HTML : 웹페이지의 뼈대 제공 CSS : 색깔, 글씨체, 모양과 같은 디자인적 요소 JS : 웹페이지의 동작 따라서, 자바스크립트는 동적으로 컨텐츠를 바꾸고, 멀티미디어나 움직이는 이미지 등 웹페이지를 꾸며주도록 도와준다. 구글, 페이스북, 트위터 등 각종 웹에서 모두 ajax를 적극적으로 활용하여 동적인 웹을 개발한다. AJAX는 Asynchrounous Javascript And X..

Development/Node.js 2020.07.19

카카오톡 더치페이는 얼마까지 지원할까?

단순한 궁금증입니다. 카카오톡에서 더치페이 서비스를 제공하고 있습니다. 더치페이 서비스의 여러가지 장점이 있지만 가장 큰 궁금증은 아마 나머지 금액을 카카오에서 처리해준다는 것입니다. 여기서 생긴 궁금증인데 원금을 더치페이를 하는 인원으로 나눴을 때 나오는 나머지 금액을 지원해준다면 카카오톡의 더치페이 인원보다 적은 금액을 더치페이하면 나머지가 원금과 같아서 해당 원금을 전부 지원해주나요? 4명 또는 10명 정도의 더치페이인원보다 적은 금액이 존재하지 않겠지만 현재 단톡방 최대인원이 1318명인데 그러면 1000원 또는 1200원 등과같은 금액을 해당 인원들이 더치페이하면 나머지 금액이 원금과 같아서 원금을 전부 카카오톡에서 지원하는 경우가 있을까 궁금합니다. 처음안 사실 카카오와 카카오페이는 별개의 회..

인생꿀팁 2020.07.18
반응형