1. Workbench Workbench을 사용하여 접속 시 SSL connection error: SSL is required but the server doesn't support it 오류를 만나게 된다면 아래와 같이 설정을 변경하자. Advanced 탭에서 Others 항목에 useSSL=0 추가하여 접속하면 된다. 2. Java javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 오류가 나타난다면, jdbc url에 useSSL=false 옵션을 추가하면 해결된다.
오늘 포스팅 내용은 AWS S3 파일 업로드에 대해 정리해보자. Bucket 생성 및 권한(정책) 수정 AWS 콘솔에서 S3 메뉴에서 버킷 생성을 하고 권한 탭에서 버킷 정책을 수정해야 한다. 버킷 정책은 정책 생성기를 통해 만들고, 필요한 Action 목록은 아래와 같다. GetObject GetObjectAcl PutObject PutObjectAcl DeleteObject ListBucket 사용자 및 권한 추가 AWS 콘솔에서 IAM 메뉴에서 사용자를 추가하고 S3 접근을 위한 권한을 설정해야 된다. S3 파일 객체에 접근하기 위해서는 AmazonS3FullAccess 정책을 사용자에 연결해야 된다. 또한 사용자 추가 시 발급받은 액세스 키 정보를 잘 보관하고 있어야 한다. pom.xml 및 *...
Cloud 환경에서 개발, 운영을 하면 데이터베이스 시간 설정이 안 맞을 수 있다. 이번 포스팅은 AWS RDS 서비스를 이용할 때 시간 설정을 하는 방법을 알아보자. 1. RDS 콘솔로 접근해서 파리미터 그룹 메뉴로 접근하자. 기본적으로 default group 파라미터가 생기지만 우리가 원하는 시간대가 아니기 때문이다. default group은 편집이 불가하기 때문에 신규 파라미터 그룹을 생성해야 한다. 2. 개발, 운영하고 있는 RDS 유형 및 버전을 확인하고 파라미터 그룹을 생성되었다면, 파리미터 검색창에 "zone"을 검색하면 아래와 같은 창에 나타난다. [Asia/Seoul]을 선택해서 저장을 하자. 3. 적용할 RDS 인스턴스 편집을 통해 생성한 파라미터 그룹을 선택하여 타임 설정을 적용한..
AWS KMS KMS는 크게 3가지 방식으로 key 관리 서비스를 제공한다. AWS managed key AWS managed key는 AWS 서비스들이 KMS를 통해 key를 서비스받는 것으로, AWS 자체적으로 동작하기 때문에 직접 제어가 불가능하다. 예) Amazon RDS 데이터베이스 생성 시 KMS key를 사용하여 암호화 적용(블록 단위 암호화) Customer managed key Customer managed key (CMK)는 직접 key를 생성하고 관리하는 것으로, 본 포스팅의 주된 내용이다. Custom key stores Custom key stores는 AWS에서 제공하는 또 다른 key 관리형 서비스인 CloudHSM을 활용한 key 관리 형태를 의미한다. 자세한 동작 방식은 공..
import java.util.HashMap; public class Maps { public static void main(String[] args) { // Map // key, value 쌍의 집합이다. // 특정 순서를 보장하지 않는다. HashMap empIds = new HashMap(); empIds.put("John", 12345); empIds.put("Carl", 54321); empIds.put("Jerry", 8675309); System.out.println(empIds); System.out.println(empIds.get("Carl")); // 키가 존재하는지 System.out.println(empIds.containsKey("George")); // 값이 존재하는지 Sys..
import java.util.ArrayList; import java.util.LinkedList; public class LinkedListVsArrayList { public static void main(String[] args) { // LinkedList // 첫번째 노드, 마지막 노드에 대한 포인터가 있고, 연결된 노드에 대한 포인터 참조가 있다. // 다음 노드에 대한 포인트 이외에도, 이전 노드에 대한 참조도 가지고 있다. // 요소로 접근할 수 없어 상대적으로 느리다. // 요소의 추가, 삭제에 근접 노드의 포인트 참조만 변경하면 되기때문에 성능 이점이 있다. LinkedList namesLinkedList = new LinkedList(); namesLinkedList.add("Joh..
import java.util.ArrayList; import java.util.Arrays; public class ArrayVsArrayList { public static void main(String[] args) { // Arrays 특징 // - 제네릭 불가능(불안전 유형) // - 생성시 크기가 고정되며 확장하거나 축소 할 수 없다. // - 초기화 시 메모리에 할당되며, 고정크기여서 속도가 빠르다. // String[] friendsArray = new String[4]; String[] friendsArray = {"John", "Chris", "Eric", "Luke"}; // ArrayList 특징 // - 제네릭 가능(안전한 유형) // - 요소의 수에 따라 자동으로 확장 및 축소 ..
axios를 사용할 때 get 메서드로 배열 데이터로 요청을 하게 되면 400 에러 잘못된 요청이라고 오류나 난다. 서버 Controller에서 처리하거나 axios get 요청할 때마다 paramsSerializer 직렬화를 추가해주면된다. 하지만 get 요청할 때마다 직렬화 옵션을 넣는다는 게 여간 귀찮고 알맞은 방식의 코드는 아니다. 아래와 같이 axios를 생성할때 옵션을 지정하면 간단히 해결된다. import qs from 'qs'; const instance = axios.create({ headers: { 'Content-Type': 'application/json', }, // `paramsSerializer`는`params`를 직렬화(serializing) 하는 옵션 함수입니다. // (..
Cloud Firebase를 사용하여 실시간 화면 공유를 할 수 있다. PC 또는 태블릿에서 데이터를 입력하면 미치 공유가 되는 것처럼 가능하다. 예를 들어 은행업무를 보면 계좌 개설이나 대출을 받을 때 동의서를 태블릿으로 서명 동의를 받는 것을 예를 들 수 있다. 아래 예시는 키 몸무게를 입력받아 Cloud Firebase 데이터를 적재하고 실시간으로 다시 화면에 표출하는 예시이다. CloudFirebase.js import React, { useEffect } from 'react'; import firebase from 'firebase'; import 'firebase/firestore'; const firebaseConfig = { apiKey: 'AIzaSyCpJV8njsbs9h-zDagtND..
- 경력관리
- Collection
- 오라클 내장 함수
- Eclipse
- 이직
- 제주도 3박4일 일정
- Java
- Maven
- 리액트 16
- 제주도 여행
- 프로그래머스
- 자바
- spring
- 성능분석
- 자바스크립트
- SQL
- 리액트
- React
- javascript
- 정렬 알고리즘
- Tomcat
- 개발환경
- 프로그래머
- Linux 명령어
- 리눅스 명령어
- 소프트웨어공학
- 오라클
- sort algorithm
- effective java
- 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |