분류 전체보기 (85) 썸네일형 리스트형 [AWS S3] aws-sdk에서 S3에 접근 시 Access Denied 해결 방법 nodejs 에서 s3에 접근하여 이미지를 업로드 하던 중, aws 로부터 access denied 오류를 발견하였습니다. 이번 글에서는 해당 오류를 해결하는 방법을 알아보도록 하겠습니다. 첫번째. 아이디 확인 1. Access Key Id 2. Secret access Id 이 두가지가 제대로 입력되어있는지 확인합니다. root 계정의 엑세스 아이디가 아닌, s3와 연결된 IAM의 엑세스 아이디가 필요합니다. 두번째. IAM 권한 확인 IAM 권한을 확인하여 S3에 full access 권한을 부여했는지 확인합니다. 세번째. 퍼블릭 차단 엑세스 비활성화 S3에 들어가 해당 버킷의 권한 탭을 클릭합니다. 아래와 같이 엑세스 권한들이 나오는데, 가장 위에 있는 퍼블릭 차단 엑세스를 비활성화 해줍니다. 위와.. [Node.js] node.js 에서 base64 이미지를 S3에 저장하기 이번 글에서 node.js 환경에서 base64 이미지를 s3 버킷에 저장하는 코드를 설명하려고 합니다. 가장 먼저 aws-sdk를 설치가 필요합니다. 아래의 명령어를 통해서 패키지를 설치해줍니다. npm install aws-sdk --save nodejs에서 aws-sdk를 이용해서 s3에 접근하기 위해서는 다음과 같은 정보들이 기본적으로 필요합니다. 1. Access Key Id 2. Secret access Id 3. aws region 4. s3 bucket 우선 S3 버킷이 없다면 만들어줍니다. 버킷은 AWS의 S3 서비스 화면에서 만들 수 있습니다. 그 후, IAM을 만들어 s3에 대한 full access 권한을 부여주세요. IAM을 만들면 ACCESS_KEY_ID, SECRET_ACCES.. [Node.js] 세션 정보 변경이 반영되지 않을 때 Node.js 에서 session-file-store을 이용할 때 세션 정보가 변경되지 않을 때의 해결 방법에 대해서 다뤄보겠습니다. 세션은 쿠키를 좀 더 안전하게 사용하기 위해 세션 id를 쿠키에 저장하고, 그 세션 id에 관련된 민감한 정보들은 따로 저장해두기 위해서 사용합니다. 그런데 세션 정보를 아래와 같이 넣어주었는데도 정작 json 파일 안에는 그 변경 부분이 반영되지 않은 경우가 있습니다. app.post('/auth/login', function(req, res){ var user = { username: 'tech', password: '123!', nickName: 'Tech' } var username = req.body.username; var password = req.body.p.. [Spring Boot] ORM과 JDBC, JPA 이번 시간에는 ORM와 JDBC, JPA에 대해서 배워보고자 합니다. 위의 ORM, JDBC, JPA는 모두 데이터베이스와 관련된 내용들인데요, 하나씩 차근차근 다뤄보겠습니다. JDBC JDBC는 JAVA에서 DB 접근을 하기 위해 java에서 제공하는 API입니다. Persistence Layer를 구현하기 위해서 사용되는데, 이 때 Persistence Layer란 프로그램의 아키텍쳐에서 데이터를 생성한 프로그램이 종료되더라도 사라지지 않도록 하는 영속성을 데이터에 부여하기 위해 존재하는 Layer입니다. 모든 Java Data Access 기술들은 JDBC를 기본적으로 사용하고 있고, 현재 사용되는 Java Data Access 기술들은 순수하게 JDBC만 사용했을 때의 단점들을 보완한 형식입니다... [java] 가비지 컬렉션(Garbage Collection, GC)의 개념 이번 시간에는 Java에서 컴파일을 하면 생기게 되는 자바 바이트코드를 실행할 수 있도록 해주는 JVM의 기능중 하나인 가비지 컬렉션(Garbage Collection), 줄어서 GC에 대해서 알아보도록 하겠습니다. java를 개발했던 경험을 잘 생각해보면 객체를 여러번 생성한 기억은 있어도, 이걸 해제한 기억이 없습니다. C와 같은 경우에는 메모리 할당을 해주면 그 메모리가 해제되기 전까지는 계속 메모리 영역에 남아있어 누수가 생기게 되는데, java는 어떨까요? 결론적으로 java는 이러한 메모리 누수를 관리해주는 기능을 갖고 있습니다. 이는 가비지 컬렉션이라고 불리며 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블럭인 가비지를 추적하여, 자동으로 할당된 부분을 해제시켜주는 역할을 합니다. .. [javascript] var, let, const와 호이스팅 자바스크립트에서 사용되는 변수 타입과 스코프에 대해서 알아보겠습니다. 기본적으로 자바스크립트 또한 다른 언어와 같이 지역변수와 전역변수 개념이 존재합니다. 따라서 전역변수를 함수 내에서 변경하면, 함수 바깥에서도 변경된 값이 사용된다던가 .. 하는 등의 기본적인 개념이 적용됩니다. 다만 자바스크립트에서는 이런 통상적인 스코프에서 예외적인 변수 선언 타입이 있는데, 이러한 내용들을 지금부터 다뤄보고자 합니다. 우선 자바스크립트는 var, let, const의 변수 타입을 주로 사용합니다. - let let은 기본적으로 선언한 후에 값을 변경할 수 있고, 같은 스코프 내에서는 재선언을 할 수 없습니다. 아래처럼 선언한 변수에 다시 값을 할당할 수 있습니다. let temp = "hello" console.l.. [javascript] 정규표현식의 개념과 자바스크립트에서의 정규표현식 이번 시간에는 정규표현식에 대한 간단한 개념을 자바스크립트 환경에서 사용하며 배워보고자 합니다. 정규표현식을 사용하는 이유 정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데에 사용되는 언어입니다. 기능이라기 보다는 하나의 언어에 가깝기 때문에 어렵고, 복잡한 내용이 많지만 간단하게 정리하자면 "문자열의 검색과 치환을 위해 사용되는 언어"라고 할 수 있습니다. 정규 표현식을 필요로 하는 가장 간단한 예제는 다음과 같습니다. 여러가지 사이트를 편하게 연결할 수 있도록 모아놓은 html이 있다고 가정해봅시다. 그러면 간단하게 아래와 같이 구현할 수 있습니다. 네이버 https://www.naver.com 구글 https://www.google.co.kr/ 다음 https://www.daum.net .. [Spring Boot] 스프링 부트와 build.gradle 본 글은 인프런의 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 내용을 일부 참고하고 있습니다. Spring과 Spring Boot 이전에 스프링과 관련된 강의를 들으면서 필요한 dependency들을 넣는 작업을 한 적이 있습니다. 이 때 사용한 것이 메이븐이었는데, 이를 통해서 필요한 라이브러리를 가져오고, pom.xml에 가져올 라이브러리의 groudID, version 등을 넣어주었습니다. 그런데 가끔씩 이런 라이브러리의 버전 관련 문제로 에러가 생기기도 하고, 특히나 라이브러리가 많아지면 점점 pom.xml의 길이가 늘어나는 상황이 발생합니다. 그러면 나중에 dependency 관리를 해주기도, 또 보기도 힘들어지겠죠. 이러한 문제를 해결하기 위해서 도.. [Network] 포트포워딩이란? 서버를 구축하거나, 서비스를 제공할 때에 공유기를 거치게 되면 공인 및 외부 IP와 사실 및 내부 IP끼리 이어주는 포트 포워딩 작업이 필요합니다. 지금부터 포트 포워딩이 무엇이고, 왜 필요한지에 대해서 다뤄보겠습니다. 사설 네트워크 우리가 접속하는 Internet은 공유기를 거쳐 내부 네트워크로 연결되어있는 device에 연결됩니다. 따라서 게이트웨이의 외부망과 그 반대에 있는 내부망에 있는 호스트와 연결하기 위해서는 서로 통신을 할 수 있도록 특정한 포트를 개방시켜주어야 합니다. 이런 사설 네트워크로는 10.x.x.x대역, 172.16~31.x.x대역, 192.168.x.x대역 IP를 사용하고 있습니다. 위와 같은 상황에서, A라는 device는 192.168.0.1이라는 사설 IP를 가지고 있습니다.. [Node.js] 하드코딩 피하기, dotenv 사용법 프로젝트를 진행하다보면, 비밀번호나 키 등을 사용하는 경우가 생깁니다. 이럴 때 소스코드에 직접 비밀번호, 키같은 보안이 필요한 데이터들을 하드코딩으로 넣게 되면, 후에 이러한 데이터들이 노출될 수 있습니다. 특히 깃허브에 프로젝트를 올려서 관리하는 경우, 비밀번호를 소스코드 안에 그대로 넣게 되면 치명적일 수 있습니다. 실제로도 깃허브에서 이러한 정보들을 빼가는 해커들이 있다고 하네요.. 따라서 이번 시간에는 환경변수를 이용하여 데이터를 관리하는 방법에 대해서 알아보고자합니다. 환경변수 환경변수란, 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임입니다. 즉, OS가 프로세스 구동을 위해서 참조하는 변수입니다. 이번 시간은 키, 비밀번호, 개발 계정 정보들을 환경변수에 넣어 관리해.. 이전 1 2 3 4 5 6 7 ··· 9 다음