본문 바로가기

분류 전체보기

(121)
REST란? RESTful API 설계, 장단점 REST (Representational State Transfer) 제 멋대로 해석하면 리소스를 보기 쉽게 표현하며 상태를 전송한다. HTTP의 주요 저자인 Roy Fielding(로이 필딩)이 웹 설계의 우수성에 비해, 웹의 장점을 제대로 사용하지 못한다며 발표한 네트워크 아키텍처에요. REST 원리를 따르는 시스템을 RESTful이라 하고, REST 원리로 개발한 API를 RESTful API라고 부르면 되요. 또한, 열정적으로 REST를 옹호하는 사람들을 RESTarians라고 부른다고 하네요. https://ko.wikipedia.org/wiki/REST REST - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 대한민국의 힙합 음악가에 대해서는..
자바 인터페이스 사용 이유 (Java Interface) 자바에서 인터페이스를 왜 써야하나? 이 글 내용은 실제 사용할 수 있는 몇 가지 사례라는 표현이 맞을 수 있습니다. 많은 분들이 인터페이스에 대한 내용을 이론만 보고 이해하기 어려워하시기에 최대한 접근하기 쉽게 적어두었습니다. 생각보다 많은 분들이 글을 보셔서 미리 말씀 드립니다. 해당 내용을 보시고 주체적으로 생각해보시고 다른 글의 내용도 한 번 다시 보시면 깊은 이해에 도움이 될 것 같습니다. 자바 인터페이스 사용 이유 1. Cooperation (협업) 예를 들어 우리는 한국인을 위한 번역기를 만들어 볼거에요. 아 전세계 언어가 너무 많아요ㅠㅠ 그래서 업무를 나눠봤어요. "너는 영어 번역 클래스를 만들어, 난 중국어 번역 클래스를 만들게. 준비~ 시작!" 하고 각자 다 만들어서 결과물을 공유했어요...
AWS S3 버킷 생성 및 퍼블릭 액세스 S3는 AWS에서 필수로 사용할 수 밖에 없는 서비스에요. 단순히 스토리지 기능을 넘어서서, Origin을 생성하여 호스팅도 할 수 있어요. 1. AWS S3 버킷 생성 S3 버킷을 생성해볼게요. 2. 버킷 설정 버킷 이름을 정하고 리전을 설정한 후 다음으로 넘어갈게요. 옵션 구성은 넘어가고 권한을 설정할게요. 퍼블릭에서 버킷 내의 객체를 읽을 수 있도록 관련 엑세스 차단을 해제해줄게요. 마지막으로 설정한 내용을 검토한 후 버킷을 생성할게요. 3. 파일 업로드 생성된 버킷을 선택하고 파일을 업로드해보겠습니다. 객체 URL을 클릭하거나 복사해서 이미지에 접근해볼게요. 403 오류가 발생하며 접근이 불가함을 확인할 수 있어요. This XML file does not appear to have any sty..
Spring Boot JPA로 MariaDB 연동 DB는 이미 준비되어 있다는 가정하에 작성하였습니다. 연동하고 @Entity를 만들어서 실제로 사용할 수 있는지 테스트까지 해보겠습니다. build.gradle JPA를 사용하기 위해 org.springframework.boot:spring-boot-starter-data-jpa 디펜던시를 추가하겠습니다. mariadb를 사용하겠습니다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // MariaDB 다른 DB를 사용할 때에 참고해주세요. runtimeOnly 'com.h2database:h2' // H2 runtimeOnly 'co..
AWS RDS MySQL 한글 깨짐 AWS RDS를 생성하고 나서 한글 깨짐 현상이 발생할 경우 (무조건 발생해요 사실) 아래와 같이 작업해주시면 되요. MYSQL 5.7.22 버전을 사용했어요. 1. 파라미터 그룹 생성 RDS - 파라미터 그룹 탭 - 파라미터 그룹 생성을 누르면 아래와 같은 창이 떠요. 정보는 알아서 잘 입력하고 생성할게요. 2. 파라미터 그룹 편집 3. character_set 편집 character_set_client : utf8 character_set_connection : utf8 character_set_database : utf8 character_set_filesystem : utf8 character_set_results : utf8 character_set_server : utf8 4. collatio..
Spring Boot 예외처리 @ControllerAdvice - (3) Rest API를 개발할 때 제가 사용하는 아주 간단한 예외처리 방법을 소개해드릴게요. 클라이언트에게 상태코드로 예외의 성격을 알리고 body에 예외 상황에 대한 메시지를 알려줄거에요. 파일 두 개만 추가해주면 끝이에요. 실제로는 더 복잡할 수 있지만, 이해를 돕기 위해 아주 기본만 남겼으니 도움이 되었으면 좋겠네요. RestException 상태코드와 메시지만 받도록 했어요. 우리는 이 클래스로 객체를 만들어서 throw하여 예외를 발생시킬 거에요. HttpStatus는 스프링프레임워크에서 만들어 놓은 enum 클래스로 상태코드와 상태메시지를 미리 정의해놨어요. public class RestException extends RuntimeException { private static final long..
Spring Boot 패키지 구조 @Controller @Service - (2) Spring Boot 내의 패키지 구조를 어떻게 설계할지에 대해서 이야기해볼게요. (Controller - Service - DAO) 그리고 JPA를 사용하여 데이터베이스 CRUD (Select, Insert, Update, Delete) 를 해볼거에요. 그림과 같이 파일을 생성하시고, 설명에 따라 내용을 작성해주시면 됩니다. build.gradle 레파지토리는 mavenCentral이 아닌 jcenter로 변경할게요. jcenter는 CDN을 통해 라이브러리를 제공해서 속도가 빨라요. (체감으로는 못느끼겠지만...) JPA, Lombok, H2 Database를 사용해서 비즈니스 로직을 작성할거에요. 관련된 기능을 사용하기 위해 Dependencies를 추가해줍니다. plugins { id 'org.s..
MySQL 사용자 계정 권한 조회/추가/수정/삭제 MySQL에서 사용자 계정 권한을 추가, 수정, 삭제하는 방법이에요. mysql 데이터베이스에서 실행 use mysql; 계정 조회 select * from user; 계정 생성 create user 계정@호스트 identified by 패스워드; create user dbuser@localhost identified by 'password'; -- 로컬에서만 접근 가능 create user dbuser@192.168.1.72 identified by 'password'; -- 특정 IP에서 접근 가능 create user dbuser@'%' identified by 'password'; -- 어디에서나 접근 가능 계정 삭제 drop user 계정@호스트; drop user dbuser@localhost..