전체 글

전체 글

    [Cassandra] Apache Cassandra 란?

    [Cassandra] Apache Cassandra 란?

    1. 카산드라의 개요 아파치 카산드라(Apache Cassandra)는 확장성이 뛰어난 자유 오픈 소스 분산형 NoSQL 데이터베이스입니다. Cassandra는 여러 데이터 센터 및 클라우드에서 대량의 정형, 반정형 및 비정형 데이터를 관리하기 위해 설계 되었습니다. 또한 Cassandra는 최대한의 유연성과 빠른 응답 시간을 위해 설계된 강력한 동적 데이터 모델과 함께 단일 장애 지점없이 많은 상용 서버에서 지속적인 가용성, 선형 확장성 및 운영 단순성을 제공합니다. 2. 카산드라의 특징 및 장점 분산 아키텍처 기존의 관계형 데이터베이스 시스템과 달리, 카산드라는 분산형 아키텍처를 기반으로 하여 데이터를 저장하고 처리합니다. 이는 데이터의 확장성과 고가용성을 제공하며, 대량의 데이터를 처리하고 높은 성..

    [NoSQL] Cassandra vs Hbase vs MongoDB

    Cassandra Cassandra는 시장에서 가장 널리 사용되는 와이드 컬럼 스토어 데이터베이스 시스템입니다. Facebook의 받은 편지함 검색 기능을 위해 Facebook에서 처음 개발된 Cassandra는 2008년에 오픈 소스로 공개되었으며 이후 2010년 2월 17일에 Apache용 최상위 프로젝트를 만들었습니다. 대량의 데이터를 처리하고 실시간에 가까운 분석을 제공합니다. Java로 작성된 Cassandra는 각 업데이트에 대한 동기식 및 비동기식 복제를 제공합니다. 내구성과 내결함성 기능은 상시 작동 애플리케이션에 이상적입니다. Cassandra는 기존 RDBMS처럼 열과 행에 데이터를 저장하지만 행이 다른 열을 가질 수 있고 열 형식의 변경까지 허용한다는 점에서 민첩성을 제공합니다. 이 ..

    [Spring Security] 수동 인증(강제 로그인)

    Spring 프로젝트를 진행하다보면 정의되지 않은 폼을 통해서 인증 처리를 해주어야 하는 경우가 있다. 이럴 때 특정 인가된 정보를 SecurityContext에 수동으로 등록해주고 세션에 주입해주면 된다. @RequestMapping(value="login", method=RequestMethod.POST) public String login(HttpServletRequest request) throws Exception{ CustomUserDetailsImpl user = new CustomUserDetailsImpl(); // 수동으로 권한 설정 List roles = new ArrayList(); roles.add(new SimpleGrantedAuthority("ROLE_USER")); user..

    [pdfbox] PDF 파일을 Image파일로 변환하는 방법

    1. Dependency 추가 org.apache.pdfbox pdfbox 2.0.28 2. Sample Code import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.PDFRenderer; public class PdfToImage { public static void main(String[] args) { // PDF 문서 객체..

    JAVA SHA-256 암호화 방법

    import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class SHA256Util { public static String SHA256Encrypt(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException{ StringBuffer hexString = new StringBuffer(); MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] hash = digest.digest..

    [PostgreSQL] 읽기 전용 유저 생성

    특정 데이터베이스의 특정 스키마에 대한 읽기 전용 유저 생성 방법 1. PostgreSQL 접속 $ psql -U postgres 2. 유저 생성 create user with password ''; 3. 해당 데이터베이스 접속 \c db_1; 4. 해당 스키마에 대한 USAGE 권한을 부여 GRANT USAGE ON SCHEMA schema_1 TO ; 5. 해당 스키마의 모든 테이블에 대한 SELECT 권한을 부여 GRANT SELECT ON ALL TABLES IN SCHEMA schema_1 TO ; 5-1. 필요한 경우 시퀀스에 대한 SELECT 권한을 부여 GRANT SELECT ON ALL SEQUENCES IN SCHEMA schema_1 TO ; 6. 권한 조회 테이블 권한 조회 sele..

    Spring AOP를 활용한 모든 Request에 Log 남기기

    Controller에서 RequestMapping된 모든 요청에 로그를 남기고 싶은데, 메소드 하나하나에 로그를 찍는 것은 너무 생산성이 떨어지기에 Spring AOP를 활용하여 로그를 남겼던 방법을 기록합니다. 1. Dependency 추가 org.springframework.boot spring-boot-starter-aop 2. @Aspect 클래스 작성 import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspe..

    [Jasypt] Spring Boot 애플리케이션의 프로퍼티 암호화

    [Jasypt] Spring Boot 애플리케이션의 프로퍼티 암호화

    Jasypt(Java Simplified Encryption) Spring Boot는 Spring Boot 애플리케이션의 속성 소스에 대한 암호화 지원을 제공합니다. Git의 public repository나 외부에 공개 되면 안되는 정보들을 암호화하여 탈취되는 것을 막기 위해 사용합니다. Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works. Jasypt는 개발자가 암호화 작동 방식에 대한 깊은 지식..