목록전체 글 (63)
프로그래밍 공부방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bW5lVd/btrIjMfbB1j/tSaTnA7QhVzOCJq3FlFanK/img.jpg)
HTML 파일에서 중복으로 사용되는 부분을 계속 코드를 작성해서 따로 넣어주기에는 비효율적인 일입니다. 따라서 ejs파일로 만들어서 html 파일 안에 다른 html 코드를 include 해주도록 하겠습니다. 1. app.js 코드 var fs = require('fs'); const ejs = require("ejs"); app.get('/', function(req, res){ fs.readFile('./views/index.ejs', "utf-8", function(error, data){ res.writeHead(200, {'Content-Type': 'text/html' }); res.end(ejs.render(data)); }) }) ejs를 사용하기 위해서 ejs 모듈을 require 해주세..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mJuVm/btrGRkirLtW/rnkUgjyRq56M5FVw05FMN1/img.jpg)
저는 식물 커뮤니티 프로젝트를 진행하고 있었습니다. 문제없이 잘 진행하고 있다가 openAPI에서 값을 받아온 후 화면에 출력하는 과정에서 문제가 생겼는데...ㅠ 바로 CORS 에러!!!!!!!!!!! 동일한 출처일 땐 자원에 접근할 권한이 주어지지만 그렇지 않을 때는 권한이 없기 때문에 생기는 에러입니다. 프론트엔드쪽만 공부하면서 개발하고 있었기 때문에 이 문제도 프론트엔드 상에서 해결하려고 했습니다. 하지만.. 실패... !!!!!!! -_-.... 저는 클라이언트쪽에서 공공데이터포털쪽 서버로 XMLHttpRequest를 이용해서 바로 데이터를 요청했습니다. 그렇게 한 결과 위에 사진처럼 cors 에러가 생겼죠 좀 더 알아보니깐 cors 에러를 해결하려면 서버 측에서 코드를 수정해야했습니다. 저는 기..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xq9J8/btrGPqdhVGu/k93jI8V8V6PjKKxCKc2MS1/img.jpg)
사용된 openAPI : 산림청 국립수목원_식물자원 서비스 | 공공데이터포털 (data.go.kr) 1. parser.toJson(xml데이터) : xml → json 이 때 parser = require(xml2json') 입니다. parser.toJson은 xml을 json 형태로 바꾸어줍니다. 결과값 보시면 json으로 잘 바뀐 것을 확인할 수 있습니다. 2. JSON.parse( ) : json 데이터 → js 객체 위에 json 데이터를 JSON.parse()를 해 준 후의 결과입니다. typeof로 위 결과값이 어떤 타입인지 확인해보면 object로 뜹니다. 위 결과값을 결과를 요청한 클라이언트쪽으로 전달한 후에 console.log로 확인했을 때의 결과입니다. js 객체로 바꾼 후에는 아래와..
SQL 데이터베이스란? 관계형 데이터베이스 시스템 NoSQL 데이터베이스란? 비관계형 데이터베이스 시스템 SQL - 고정된 열과 행을 가지고 있는 테이블에 데이터를 저장할 수 있다. - 확실한 데이터 구조를 가지고 있다. NoSQL - NoSQL 데이터베이스 유형은 다음과 같다. 1. 문서 데이터베이스: JSON 객체와 비슷한 문서에 데이터 저장 2. 키-값 데이터베이스: 각 항목에 키, 값이 포함 3. 와이드 컬럼 스토어: 테이블, 행 및 동적 열에 데이터 저장 4. 그래프 데이터베이스: 노드와 에지에 데이터 저장 - 자유로운 데이터 구조를 가지고 있다.
def solution(n, arr1, arr2): answer = [] binaryarr1 = [] binaryarr2 = [] binary_result = '' for i in range(len(arr1)): binaryNum1 = format(arr1[i], 'b') binaryNum2 = format(arr2[i], 'b') if len(binaryNum1) < n: binaryNum1 = ('0'*(n-len(binaryNum1))) + binaryNum1 if len(binaryNum2) < n: binaryNum2 = ('0'*(n-len(binaryNum2))) + binaryNum2 binaryarr1.append(binaryNum1) binaryarr2.append(binaryNum2)..
def solution(dartResult): answer = [] dartResult_set_list = [] for i in range(len(dartResult)): if (dartResult[i].isdigit() == True and dartResult[i-1].isdigit() == True): dartResult_set_list[-1] += dartResult[i] else: dartResult_set_list.append(dartResult[i]) for i in range(len(dartResult_set_list)): if (dartResult_set_list[i] == "S"): answer.append(pow(int(dartResult_set_list[i-1]), 1)) elif (..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ALhuu/btrE0ahSQPI/XzxszCT9TWwXEk1c6zQSN0/img.png)
ㅠㅠ... 프로젝트 어느정도 마무리 하느라.. 블로그 포스팅을 하지 못했다.. 지금까지 진행한 내용들 정리해서 올리겠습니당!! 일단 본인이 만들고 싶은 갤러리를 생성할 수 있다. 갤러리를 만들기 위해서는 로그인이 필요하다. 로그인 후에 개인 갤러리 생성이 가능하다. 아래 사진은 로그인을 한 후에 처음으로 갤러리를 생성할 때의 화면이다. 1. 왼쪽에 있는 사진 1) PHP 코드 갤러리 생성 갤러리 이름 전시 기간
자바스크립트에서 함수를 쓸 때는 여러 방식들이 있다! 1) 함수 선언 방식 function hello(매개변수) { } 2) 함수 표현식 var hello = function(매개변수) { }; 이 둘의 차이점이 뭘까????? 일단 코드에서 보이는 것처럼 세미콜론(;) 유무의 차이가 있다. 그리고 함수 선언 방식은 호이스팅이 일어나고 함수 표현식은 호이스팅이 일어나지 않는다. ※호이스팅이란? 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다. - 함수 선언 방식은 함수 선언 전에도 호출이 가능하다! - 함수 표현 방식은 함수 선언 후에만 호출이 가능하다!! 3) 화살표 함수 const hello = (매개변수) => { };