[playkuround] 행사 후기와 v2.0.4 버전 업데이트
Intro 이번 게시물에선 오프라인 행사 후기와 playkuround server 업데이트 내역에 대해 포스팅하겠습니다. 오프라인 행사 지난 게시물에 작성했던 것처럼 지난 주에 오프라인 행사를 진행했습니다. 오프라인 행사 기획서와 당일 인스타 홍보 스토리 띠부씰 60개와 뽑기 꽝 상품 100개를 준비했었습니다. 앱 다운로드나 쿠라운드 인스타 계...
Intro 이번 게시물에선 오프라인 행사 후기와 playkuround server 업데이트 내역에 대해 포스팅하겠습니다. 오프라인 행사 지난 게시물에 작성했던 것처럼 지난 주에 오프라인 행사를 진행했습니다. 오프라인 행사 기획서와 당일 인스타 홍보 스토리 띠부씰 60개와 뽑기 꽝 상품 100개를 준비했었습니다. 앱 다운로드나 쿠라운드 인스타 계...
Intro HTTPS(HyperText Transfer Protocol Secure)은 HTTP 프로토콜에 보안을 강화한 버전입니다. 이번 게시물에서는 보안이 어떤 식으로 강화가 되는지 알아보고자 합니다. 기본적으로 암호학의 지식이 필요합니다. 제가 전에 게시했던 포스팅을 적극적으로 활용하겠습니다. 먼저 기본적인 암호 시스템을 알아봅시다. 대칭키와...
Intro 어느덧 플레이쿠라운드가 출시된지 3주가 되어갑니다. 정말 많은 학우분들의 관심을 받은 것 같습니다. 내일(20일)은 플레이쿠라운드 팀에서 준비한 오프라인 행사가 기획되어 있습니다. SNS 팔로우 또는 앱 다운로드를 하면 뽑기를 통해 띠부씰을 받을 수 있어요. 인스타그램 게시물 보기 빅(?)이벤트를 대비하여 인증 메일을 개선했습니다. 이메...
일반적으로 간단한 웹 서버 애플리케이션을 제작할 때 가장 먼저 떠오르는 아키텍처는 레이어드 아키텍처(layered-architecture)입니다. 단순하고 대중적이면서 비용도 적게 들기 때문에 초기 구축할 때 출발점으로 많이 선택합니다. 이번 포스팅에서는 presentation layer와 business layer의 의존성을 다룹니다. 모든 예시는...
프록시 패턴이나 데코레이터 패턴을 사용하면 프록시 클래스를 손쉽게 만들 수 있다. 하지만 필요한 프록시 클래스 개수가 증가하면, 디자인 패턴을 구현할 클래스도 증가하게 된다. 본 게시물에서는 이러한 상황에서 프록시를 공통 추상화시킬 수 있는 동적 프록시(Dynamic proxy)를 알아보려고 한다. 선행 : 리플렉션 JDK 동적 프록시를 이해하기 위...
멀티 쓰레드 프로그램에서 동시성(concurrency) 문제는 언제나 고민거리이다. 아래는 동시성 문제가 발생하는 예시이다. public class Singleton { public static String value; private Singleton() { } public static void store(Strin...
이번 포스팅에서는 스프링 트랜잭션 전파(propagation)에 대해 알아보자 기본 코드 먼저 본 포스팅에 기본이 되는 코드를 알아보자. @Slf4j @SpringBootTest public class BasicTxTest { @Autowired PlatformTransactionManager txManager; @TestC...
이번 포스팅은 양자를 이용한 암호 이야기를 적었습니다. 약간의 물리 내용이 포함되어 있습니다. The Interferometer 위 그림과 같이 4개의 거울 (half, full)을 모퉁이에 설치 후 좌측 아래에서 오른쪽 방향으로 빛 레이저를 쏜다고하자 Half 거울은 빛을 받았을 때 굴절될 확률 50%, 그냥 통과될 확률 50% 이다....
Zero Knowledge Proof 이론적으로 완벽을 만들기 위함 실용적이진 않음(실제로 사용은 안함) RSA의 경우 NP-Complete가 아니지만 실용적이기 때문에 사용 $P$(증명하고 싶어하는 사람) , $V$(확인하려는 사람) $P$는 자신이 비밀정보 $X$를 안다는 것을 $V$에게 증...
스프링 트랜잭션 추상화 데이터 접근 기술들은 트랜잭션을 처리하는 코드 자체가 다르다. 아래는 JPA와 JDBC의 트랜잭션 코드 예시이다. // JPA 트랜잭션 EntityTransaction txn = entityManager.getTransaction(); txn.begin(); ... txn.commit(); // JDBC 트랜잭션 Connec...