반응형 나의 개발일지39 CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유) ▼ CORS란? 브라우저에서 실행 중인 스크립트에서 시작되는 cross-origin HTTP 요청을 제한하는 브라우저 보안 기능으로, 브라우저와 서버의 도메인이 일치하지 않으면 기본적으로 요청이 차단된다. 이 현상은 브라우저에서 서버로 요청을 보낼 때만 발생하고, 서버에서 서버로 요청을 보낼 때는 발생하지 않는다. 위의 사진처럼 api 서버의 url과 동일한 Domain A의 경우 에러가 발생하지 않으나 Domain B의 경우 CORS 에러가 발생한다. ▼ CORS 문제를 해결하기 위해서는? → 응답 헤더에 Access-Control-Allow-Origin 헤더를 넣어야 한다 (클라이언트 도메인의 요청을 허락하겠다는 뜻을 가짐) (아래의 방법은 nodejs와 express로 api 서버를 개발하는 경우의.. 2022. 8. 14. 기술 표준과 오픈소스, 오픈소스 라이센스 ▼ 기술 표준 · 표준 : 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어 있는지 명확하고 상세하게 기술한 것. 국가적 기술 표준 워드의 .doc / .docx 파일 포맷과 같이 공식적으로 정해지지는 않았지만 널리 사용되며 생겨난 '사실상의' 표준 ▼ 국가적 기술 표준 예시 ▼ 소프트웨어에서의 표준 예시 ▼ 표준의 중요성 상호 운용성 (호환성) - 같은 기종 또는 다른 기종 간에 정보교환 및 처리를 가능하게 해줌. 비용 절감 - 제조업체, 벤더 등 사업자는 단위 생산·거래 비용을 줄일 수 있으며, 대량생산을 통해 규모의 경제(economy of scale)를 실현하는 것이 가능 무역 활성화, 해외시장 진출 - WTO TBT 협정에 따라 국가 간 무역은 국제표준을 따르고 있으며, 이를 통해 .. 2022. 8. 9. 선형 검색 알고리즘과 이진 검색 알고리즘 소프트웨어의 알고리즘을 설명할 때 음식의 레시피에 자주 비유하곤 한다 초콜릿 케이크 레시피 ***프로그램 재료: ~ 연산에 필요한 데이터 오븐에서 30분, 또는 반죽이 자리 잡을 때까지 구우세요. 표면 위에 손바닥을 살짝 올려서 확인하세요. 수행할 작업 완성 결과 하지만 실제 프로그램의 알고리즘은 레시피와 같이 모호하지 않다. '반죽이 자리 잡을 때' '손바닥을 살짝 올려서 확인' 솔직히 사람인 내가 들어도 모호한 표현이다. ▼ 알고리즘 어떤 문제를 풀기 위한 절차나 방법 어떤 문제가 있을 때 주어진 '입력' 정보를 원하는 '출력(답)' 정보로 만드는 일련의 과정을 구체적이고 명료하게 적은 것. '세심, 정확, 명료'가 중요한 키워드. [ 알고리즘 유의사항 ] 데이터가 어떤 유형이어야 .. 2022. 8. 1. [nodejs | 노드js] package.json ▼ package.json npm에서 핵심적인 역할을 하며, 패키지에 관한 정보와 의존 중인 버전에 관한 정보를 담고 있다. 패키지 내의 의존성 관리를 위해 프로젝트마다 생성하여 패키지 목록과 버전을 관리한다. 프로젝트명, 버전, 만든 사람, GitHub 레포지토리 등 설치된 모듈의 정보가 담겨 있으며, 해당 프로젝트가 의존하고 있는 모듈이 무엇인지 파악할 수 있다. 누군가의 프로젝트를 클론할 때에도 유용하게 쓰인다. npm install 명령어만 이용하면 package.json 파일의 정보를 읽어 필요한 라이브러리를 모두 설치할 수 있다. { "name": "zerocho-blog", "version": "2.8.1", "description": "blog of ZeroCho", "private": t.. 2022. 7. 31. Apple Silicon(MAC M1)에서 docker로 mysql 설치 시 오류 항해 강의에 있는 코드 스니펫을 터미널에 넣으면 에러가 뜬다. [docker로 mysql 설치하기] docker run —rm -p 3306:3306 —name -e MYSQL_ROOT_PASSWORD= mysql:5.7 mysqld —character-set-server=utf8mb4 —collation-server=utf8mb4_unicode_ci [에러] Unable to find image 'mysql:5.7' locally 5.7: Pulling from library/mysql docker: no matching manifest for linux/arm64/v8 in the manifest list entries. → m1은 linux/arm64가 아닌 linux/amd64여서 에러 발생. →.. 2022. 7. 30. [nodejs | 노드js] 모듈(module), 내장 객체 ▼ 모듈 특정한 기능을 하는 함수나 변수들의 집합 자바스크립트에서 코드를 재사용하기 위해 함수로 만드는 것처럼 모듈을 만들어 여러 프로그램에서 해당 모듈을 재사용 할 수 있다. 여러 파일에 걸쳐 재사용 되는 함수나 변수를 모듈로 만들어 두어 편리하게 관리할 수 있지만, 모듈이 많아지고 모듈 간의 관계가 얽히게 되면 구조를 파악하기 어렵다는 단점도 있다. require 함수나 module 객체는 따로 선언하지 않아도 사용할 수 있는 이유 : 노드에서 기본적으로 제공하는 내장객체이기 때문. cf) 자바스크립트 자체 모듈 시스템 문법 : 2015년 자바스크립트에서도 import/export라는 모듈 개념이 도입 되었지만, 브라우저에서는 구현 되지 않아 사용할 수 없었다가 크롬 60 버전부터 사용할 수 있게 되.. 2022. 7. 27. 이전 1 2 3 4 5 6 7 다음 반응형