-
통계학 시작하기
몬티홀 문제 넷플릭스의 드라마 D.P.에 ‘몬티홀 문제’ 라는 에피소드가 있습니다. 에피소드를 보면 몬티홀 문제에 대한 언급이 나오는데 도저히 이해가 안되서 인터넷에 찾아보기 시작했습니다. 몬티홀 문제란? 나무위키 에 정리된 내용에 따르면 문 3개가 있는데 한 문 뒤에는 자동차가 있고 나머지 두 문 뒤에는 염소가 있다. 참가자는 이 상황에서 문을 하나 선택하여 그 뒤에 있는 상품을 얻는다. 참가자가 어떤 문을 선택하면 사회자는 나머지 두 문 중에 염소가 있는 문 한 개를 열어 참가자에게 그 문에 염소가 있다고...
chyusee's profile imagechyusee
2021-10-21 10:00
-
개발자를 위한 글쓰기 가이드 를 읽고...
도서관에 갔다가 ‘개발자를 위한 글쓰기 가이드’ 란 책을 우연히 빌리게 되었다. 개발자가 글쓸일이 많이 있나 싶었는데… 생각해 보니 메일도 쓰고 있고, 개발 산출 문서도 작성하고, 심지어 지금도 글을 쓰고 있다. 개발자의 글쓰기는 어떤 것일까? 테크니컬 라이팅 책에서는 ‘테크니컬 라이팅’에 대해서 다루고 있다. 테크니컬 라이팅 이란? 책에서는 ‘기술이나 과학 분야에서 정보를 정확하게 전달하기 위한 글쓰기‘라고 설명 하고 있다. 일반 글쓰기와 비교하면 아래와 같다. 일반 글쓰기 테크니컬 라이팅 창의 상징 일반인 대상 사실 직설 특정인 대상 테크니컬...
chyusee's profile imagechyusee
2021-08-12 10:00
-
thymeleaf
Thymeleaf 보안상 이슈로 프로젝트의 스프링 버전을 올려야하는 일이 발생하여 업그레이드를 진행하던 중 사용 중이던 Velocity가 Spring Boot에서 지원을 종료하여 대체할 템플릿 엔진을 검토하게 된 일이 있었습니다. 가능하다면 React 로 컨버팅 했으면 했지만, 컨버팅 하는게 거의 신규 프로젝트 급의 공수가… Spring Boot를 지원하는 템플릿 엔진 FreeMarker, Groovy, Thymeleaf, Mustache 등 이 있습니다. 각 템플릿 엔진별로 장단점이 있지만, Spring 측에서는 Thymeleaf를 밀어주는 듯하여 선택하게 되었습니다. 설정 Maven Dependencies <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> Gradle Dependencies dependencies...
chyusee's profile imagechyusee
2021-06-17 12:00
-
JWT
#JSON Web Token (JWT) 예전에 어쩌다 보니 인증이 꼬리에 꼬리를 물면서 인증정보를 계속 전달하는 로직을 개발 한적이 있었습니다. 예를 들면 비밀번호를 재 검증 후, 검증이 올바르면 해당 인증 값을 가지고 다시 이메일 인증을 받고, 이메일 인증이 올바르면 해당 인증 값을 가지고 다시 다른 인증을 받고… 이전 인증 정보가 올바르지 않으면 다음 단계의 인증을 받을 수 없도록 처리 하려고 하다보니, 토큰 기반의 인증방식을 검토하게 되었고, JWT 인증이 존재한다는 걸 알게 되었다. 물론 그 당시에는 쓰진 않았지만…...
chyusee's profile imagechyusee
2021-03-25 09:00
-
WebClient
WebClient? 일반적으로 Spring 에서 웹 클라인어트를 이용시에는 RestTemplate를 이용하고 있었습니다. 하지만 Spring 5 버전 부터는 유지관리 모드로 진행되며, WebClient 를 사용하는 것을 권장하고 있습니다. [https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html] WebClient와 RestTemplate의 차이를 간단히 설명하면 RestTemplate은 Blocking I/O 기반의 Synchronous API Non-Blocking I/O 기반의 Asynchronous API 입니다. 예를 들어 3초, 5초 가 걸리는 요청을 각각 호출할 경우 RestTemplate은 3초 요청의 응답 처리 후, 5초 요청의 응답을 처리하기 떄문에 총 8초가 WebClient는 각각 응답 처리를 하므로 총 5초가 소요됩니다. 의존성 설정...
chyusee's profile imagechyusee
2021-01-07 09:00
-
Domain Driven Design
Domain Driven Design MSA 설계에 관해서 알아보다보면, DDD(Domain Driven Design)가 많이 거론 되곤 합니다. 직역하면 도메인 주도 설계 라고하는데, 도메인?? 도메인 DDD에서의 도메인은 개발자 입장에서 보자면 ‘개발해야 하는 것’ 이라고 보는 편이 편합니다. 예를 들어 상품을 등록하고, 결재하고, 배송하는 쇼핑몰을 개발해야 한다고 할 때 예시에서는 쇼핑몰이 도메인이라고 지칭할 수 있을 것입니다. 그리고 도메인에는 하위 도메인 개념도 존재하며, 예시에서는 등록, 결재, 배송 등도 하위 도메인 개념으로 볼 수 있습니다. 도메인 모델 도출 도메인을 모델링 하기 위해서는...
chyusee's profile imagechyusee
2020-10-15 12:00
-
도메인 주도 설계
도메인? 소프트웨어로 해결하고자 하는 문제영역 도메인은 하위 도메인으로 나눌 수 있음 예: 도메인 = 쇼핑몰 하위 도메인 = 회원, 주문, 결재, 배송, 정산 등등 도메인 모델 패턴 ####아키텍처 구성 계층 설명 표현(UI) 사용자의 요청을 처리 및 정보 제공 여기서 사용자는 유저뿐만 아니라 외부 시스템도 의미함 응용(Application) 사용자가 요청한 기능을 실행 도메인 계층을 조합해서 기능을 실행 도메인 시스템이 제공할 도메인 규칙을 구현 인프라스트럭처(Infrastructure) DB 나 메세징 같은 외부 시스템과의 연동 처리 도메인 계층에서 주괸 도직이 구현됨...
chyusee's profile imagechyusee
2020-10-15 12:00
-
MSA 트랜잭션
MSA Transaction 최근 MSA 관련하여 스터디를 하던 중 만일 2개 이상의 서비스에서 데이터를 생성해야할 경우, 하나의 서비스에서만 데이터 생성에 성공하고, 다른 하나가 서비스 장애가 생겨, 생성에 실패할 경우 어떻게 처리해야하지? 라는 의문에서 관련 처리 방법을 찾아보게 되었습니다. MSA 트랜잭션으로 검색해 볼 경우 크게 Two Phase Commit, Saga Pattern 대한 결과를 쉽게 찾을 수 있습니다. Two Phase Commit Two Phase Commit 방식에서는 Transaction Coordinator가 각 서비스의 Commit. Rollback 을 제어하는 형태로 트랜잭션을 관리합니다. 쇼핑몰을 예시로 들면...
chyusee's profile imagechyusee
2020-08-06 12:00
-
코딩교육?!
코딩교육? 점점 연차가 쌓여가다보니 개발을 계속 할 수 있을까? 라는생각이 불현 듯 들면서… 뭐해 먹고 살지? 치킨집 테크 트리를 타야 하는건가?! 그러다가 우연히 뉴스에서 ‘코딩교육 의무화’라는 뉴스를 보게 되는데… 중학교는 2018년부터 ‘정보’ 과목에서 연 34시간 초등학교는 5,6 학년은 2019년부터 ‘실과’ 과목에서 연 17시간 코딩교육을 필수로 실시하도록 되어있습니다. 도대체 코딩교육이 뭐지? 어린시절에 컴퓨터실에서 basic 배우고 하던 그런 것인가? 일단 네이버 지식백과에 ‘코딩’으로 검색을 해보면, 프로그래밍과 같은 뜻으로 널리 사용된다. 하지만 좀더 구체적으로 살펴보면, 코딩은 명령을 컴퓨터가...
chyusee's profile imagechyusee
2020-06-03 20:00
-
Sass (Syntactically Awesome Style Sheets)
Sass Sass (Syntactically Awesome Style Sheets) CSS를 작성하다보면 길어질수록 단순 반복되는 부분이 많아지고, 구조 또한 복잡해져서 관리하기가 힘들어 집니다. 그런 CSS를 편리하기 사용하기 위해, 조건문, 반복문, 연산, 상속 등을 지원하는 CSS 전처리기가 등장하게 됩니다. 대표적으로 Sass, LESS, Stylus 등이 있습니다. 그 중에서 Sass(SCSS) 사용법에 대해서 알아보자고 합니다. Sass와 SCSS 차이점 Sass .wrap width: 100px height: 200px .container position: relative margin: 0 auto SCSS .wrap { width: 100px; height: 200px; .container { position: relative; margin: 0...
chyusee's profile imagechyusee
2020-03-12 08:00
-
HTML5 Game Engine
HTML5 게임엔진 HTML5 게임엔진 순위를 바탕으로 한 Google 트랜드 검색 결과 Gamemaker Construct 2 Phaser Construct 3 Pixi.js GameMaker 요요 게임즈가 개발한 2D 게임 개발툴, GUI 기반 현재 최신버전은 GameMaker Studio 2 다양한 플랫폼으로 익스포트 가능 (각 플랫폼 별로 라이센스) GML(GameMaker Language)이라는 전용 언어을 지원 Git 지원, 사용방법은 아래 링크 참조 Git Started with Source Control and GameMaker Studio 2 (Part 1) Git Started with Source Control and GameMaker Studio 2 (Part 2) Site :...
chyusee's profile imagechyusee
2019-12-26 10:00
-
React Tutorial
React 시작하기 환경설정 01. Node.js 설치 https://nodejs.org/ko/download/ 에서 설치파일 다운로드 후 설치 node --version, npm --version 명령어를 실행하여 설치 여부를 확인 02. yarn 설치 https://yarnpkg.com/en/docs/install#windows-stable 에서 설치파일 다운로드 후 설치 또는 npm을 이용해서 설치 npm install --global yarn yarn --version 명령어를 실행하여 설치 여부를 확인 03. create-react-app 설치 yarn 이용해서 설치 yarn global add create-react-app 또는 npm을 이용해서 설치 npm install -g create-react-app 어플리케이션 생성 create-react-app [어플리케이션 명] yarn을 이용해서 어플리케이션 생성을 완료하면 아래와 같이...
chyusee's profile imagechyusee
2019-10-17 10:00
-
Spring Security?
웹 어플리케이션을 개발하다보면 회원인증, 접근권한 관련하여 고민하게 됩니다. 직접 관련로직을 구현하다 보면 누락이 생기기도 하고, 관리도 힘들어 지기도 하고… 그래서 이런 인증과 권한을 관리하기 위해 JAAS, Spring Security, Apache Shiro 등 여러 Java프레임워크가 존재하는데 그 중 Spring Security에 대해서 알아보고자 합니다. Authentication Spring Security의 대략적인 구조는 아래와 같습니다. 1 사용자 인증 요청 2 사용자 자격 증명 (아이디, 패스워드) 기반으로 Authentication Token 생성 3 인증을 위해 AuthenticationManager에 Authentication Token을 전달받아, authenticate 메소드를 호출 4 AuthenticationManager를 구현한...
chyusee's profile imagechyusee
2019-08-01 13:00