안녕하세요. 오늘은 간단하게 Spring 4.3버전 이후로 추가된 @GetMapping, @PostMapping, DeleteMapping, @PutMapping 및 @PatchMapping에 대해서 간단히 알아보고 소개하는 시간을 가져보려고 합니다. 1. 소개 Spring 4.3 버전에 추가된 내용으로는 기존의 @RequestMapping(value = "/", method="...")의 어노테이션의 사용을 조금 더 명시적고 효율적인 방법으로 사용하기 위해 @GetMapping, @PostMapping, DeleteMapping, @PutMapping, @PatchMapping의 메소드가 생기게 되었습니다. 2. 사용 방법 기본적인 작동 원리로는 GET의 HTTP(S) request를 처리하는 @Get..
안녕하세요. 요즘 실제로 어플리케이션을 개발해서 서비스할 때, 단순히 하나의 어플리케이션을 구동하는 것이 아니라, 재해, 재난, 장애 등 여러 문제가 발생하여 어플리케이션이 다운되었을 경우 대비해 여러개의 서버에 어플리케이션을 구동시켜서 클러스터링을 통해 대응하는데, 데이터베이스도 마찬가지로 하나의 디비 서버가 죽었을 때를 대비해 복제를 통한 대응을 하려고하는데 기본적으로 몽고 DB에서는 복제의 기능을 지원합니다. 따라서 오늘은 Mongo DB의 Replication에 대해서 포스팅 해보려고 합니다. 1. Replication 설정(replica set) MongoDB에서는 기본적으로 Replication(복제)를 지원합니다. 이는 서비스의 지속성과 안전성을 제공하는 데이터베이스 시스템의 설비이며, Mo..
안녕하세요. 오늘은 NoSQL의 종류 중 문서(document)인 MongoDB에 대해서 간단한 소개, 설치, 기본 구성 및 실행하는 방법에 대해서 포스팅 하려고합니다. 1. MongoDB란? MongoDB는 SQL뿐만 아니라 NoSQ(Not Only SQL)이라는 데이터베이스 계열에 속하는 문서(document) 데이터베이스입니다. MongoDB에서 record는 javascript에서의 JSON 객체와 매우 유사한 동작을 하는 문서입니다. 문서의 값은 해당 필드의 키(key)로 조회할 수 있습니다. 문서는 key / field 를 가질 수 있으며, 다른 필드는 사용할 수 없으므로 MongoDB는 매우 유연합니다. 이는 MySQL이나 PostgreSQL과 같은 RDB와는 다르며, 필드는 테이블의 열에 ..
안녕하세요. 오늘은 최근 많이 쓰이고 있는 데이터베이스 종류에 대해서 비교하는 포스팅을 하려고합니다. 대표적으로 분류하면 RDBMS, ORDBMS, NOSQL, NoSQL에 포함되어 있지만 In-Memory DB등이 있으며, 그 중, RDB, NoSQL, In-Memory DB에 대해서 비교해보려고 합니다. 1. RDB(Relational Database) RDB는 관계형 데이터베이스며, 대표적으로 Mysql, Oracle, PostgreSql 등이 가장 많이 알려진 RDB입니다. 아래의 그림과 같은 구조를 나타냅니다. - 특징 1) 테이블(Table) 마다 스키마(Schema)를 정의해야 됩니다.2) 데이터 타입과 제약(Constraint)를 통해서 데이터의 정확성을 보장합니다.3) SQL 질의문을 통..
안녕하세요. 오늘은 Spring에서 지원해주는 Jasypt(Java Simplified Encryption)를 이용해서 데이터베이스 접속 정보나, 다양한 설정 정보들을 담아두고 있는 properties 또는, yaml 파일의 정보를 암호화하는 방법에 대해서 포스팅하려고 합니다. properties나 yaml 파일에 각종 정보를을 노출하고 있기 때문에 보안성에 좋지 못해서 암호화하는 것을 추천해드립니다. 1. 우선, pom.xml에 다음과 같이 dependency를 추가해줍니다. com.github.ulisesbocchio jasypt-spring-boot-starter 2.1.0 2. 원하는 패키지 또는 Config 패키지 하위에 JasyptConfig.java라는 명의 클래스를 생성해줍니다. 그리고 아..
안녕하세요. 오늘은 Mattermost라는 오픈소스에 대해서 소개해보려고 합니다. 1. Mattermost? Mattermost는 오픈소스이며, 자체 호스팅이 가능하고, 협업 메신저인 슬랙(Slack)을 대체할 수 있는 메신저입니다. 홈페이지 메인의 주소는 아래와 같습니다. 링크 : https://mattermost.com/ Mattermost에도 슬랙과 마찬가지로 가격 정책을 통해 사용하는 버전이 있고, 다르게 오픈 소스 Team Edition을 다운로드 받아서 설치하게 되면 무료로 협업 메신저를 사용할 수 있습니다. 물론, 돈을 합당하게 지불하는 Enterprise 버전을 사용하실 경우에는 더욱 많은 기능들을 사용할 수 있는 장점이 있고, Team Edition 버전은 Github을 통해 프로젝트를 ..
안녕하세요. 오늘은 Darkest Dark Theme와 관련해서 포스팅을 진행해보려고 합니다. 저는 프로젝트를 진행할 때마다 돈이 있으면 Jetbrains사에서 제공하는 IntelliJ를 쓰고 싶으나 아직 구입을 못해서, 보통 이클립스 또는 STS(Spring Tool Suite)를 자주 사용하는 편입니다. 요즘, 흰색 바탕에서 코딩을 하다보면 눈이 눈이 아픈 경우가 종종 있었습니다. 그래서 이클립스에서 자체 지원하는 블랙 테마 및 여러가지 플러그 인들을 입맛에 맞게 커스터마이징 하는 것이 번거로워서 괜찮은 것을 찾는 도중, Darkest dark Theme라는 플러그인을 발견하게 되었습니다. 1. 설치 우선, 이클립스를 실행하셔서, Help -> Eclipse Marketplace를 선택 후, 검색 창..
안녕하세요. 오늘은 git의 다양한 명령어들 중에서 git log와 git diff라는 명령어에 대해서 포스팅 해보려고 합니다. 1. git log git log의 기본적인 문법은 아래와 같습니다. git log [] [] [[--] …] git log는 간단하게 "커밋 로그"를 보여줍니다. 즉, 저장소에 있는 commit 이력을 조회하는 명령어라고 생각하시면 됩니다. 자세한 내용을 확인하고 싶으면 아래 Document를 참고해주시면 됩니다. 링크 : https://git-scm.com/docs/git-log 그러면, 위의 명령어를 사용하는 간단한 실습을 통해서 확인해보도록 하겠습니다. 위와 같이 커밋 기록이 보여지는 것을 확인할 수 있습니다. 다음으로는 옵션을 붙여서 git log를 사용해보도록 하겠..
- Total
- Today
- Yesterday