본문 바로가기

전체 글

(53)
Docker에서 Redis설치해서 바로 사용하기! Docker는 설치가 되어있다고 과정한다. Docker에 Redis 설치 docker pull redis Redis Network 구성 docker network create redis-net //redis cli를 같이 구동하기 위해 network 구성 Docker 실행 appendonly 옵션을 통해 데이터를 파일로 관리해서 전원이 종료 되어도 데이터가 사라지지 않도록 함 docker run --name whydda-redis \ -p 6379:6379 \ --network redis-net \ -v /Users/whydda/workspace/opensources/redis:/data \ -d redis redis-server --appendonly yes Redis cli로 접속 docker run..
@Transactional 간단한 정리 @Transaction 은? 스프링에서 제공하는 트랜잭션 중 하나로 내부적으로는 Spring AOP를 사용하며 선언적 트랜잭션 이라고도 한다. 사용된 디자인 패턴은? 프록시 패턴 (Proxy Pattern) 어떤 객체에 대한 기능을 대신 수행하는 대리 객체를 사용하는 개발 패턴이다. AOP 핵심만! Dynamic Proxy Java 리플렉션을 사용하고 proxy 클래스를 통해 프록시 객체를 생성 (트랜잭션 전 처리 -> 비즈니스 로직 실행 -> 트랜잭션 후 처리)를 위임하고 프록시 객체는 런타임 시점에 동적으로 생성된다. CGLib 리플랙션 대신에 바이트코드를 생성 프레임워크를 사용하여 런타임 시점에 프록시 객체를 만든다. Dynamic Proxy 와 다른 방법을 사용하여 인터페이스가 없으면 프록시 객체..
DAU(Daily Active Users) / MAU(Month Active Users) 란 무엇인가? DAU란? 마케팅 지표 중 하나로 하루 동안 방문한 순수 사용자 수를 말한다. DAU를 정확하게 집계하려면 한 사용자가 내 사이트를 여러 번 방문한다고 해도 하나의 방문자로 봐야 한다. 그래야 정확하게 DAU 값을 알 수 있고 쓸모있는? 지표가 아닐까 한다. MAU란? 월간 활성 사용자라 하고 한달동안 방문한 순수 사용자를 말한다. 성숙한 서비스의 경우에는 MAU가 비교적 꾸준하게 유지된다. 한마디로 MAU 가 꾸준하게 나온다면 성공한 서비스가 아닐까 한다. 이 통계 값을 가지고 어디서 사용할 수 있나? 하루 동안 얼마나 많은 사람들이 나의 사이트 및 홈페이지에 들어왔는지를 알 수 있으면 블로그를 예를 들어 오늘 방문자 수 100명 중 직업에 따른 글이 조회수가 좋았다면 내 블로그를 더 방문하게 하려면 ..
Spring Boot 특정 버전의 의존성은 어떻게 확인 할 수 있을까? Spring Boot Version 2.0.0.RELEASE 이라고 가정하면? 1. 공식 사이트를 이용한다. https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#dependency-versions Dependency Versions The following table provides details of all of the dependency versions that are provided by Spring Boot in its CLI (Command Line Interface), Maven dependency management, and Gradle plugin. When you declare a d..
Docker 로 Mysql 5.7 버전 설치하기 Mysql Docker 이미지를 다운로드 받는다. $ docker pull mysql:5.7 Docker 이미지 확인 $ docker images Docker로 Mysql을 설치했다면 Mysql 구동하자 docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 -v /Users/whydda/data/mysql5.7:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci DataGrip을 사용해서 접속 테스트 user : root password : root 접속 후 잘 사용하시면 됩니다.
생성자 보단 정적 팩토리 메서드! (왜 정적 생성자를 통해 객체를 생성하는것이 안티패턴인가?) 정적 팩토리 메서드(Static Factory Method)란? 객체 생성 시 캡슐화 한다. 객체를 생성하는 역할을 하는 클래스 메서드이다. GoF 디자인 패턴 중 팩토리 패턴에서 유래한 이 단어는 객체를 생성하는 역할을 분리하겠다는 취지가 담겨있다. 생성자와의 차이는? 이름을 가질 수 있다. 생성자를 통한 생성 Character warrior = new Character(5, 15, 20, 3); Character mage = new Character(15, 5, 10, 15); 정적 팩토리 메서드를 통한 생성 Character warrior = Character.newWarrior(); Character mage = Character.newMage(); 호출할때 마다 객체를 생성할 필요가 없다. pu..
Event Driven 이란? 마이크로서비스란 작고 독립적인 시스템 loosely cupled (느슨한 결합) 빠른 배포 폴리글랏 프로그래밍 (여러개의 언어를 사용해 MSA개발) IT에서 가장 주목받고 있는 아키텍처 또한 컨테이너 기반의 플랫폼(Kubernetes)과 서로 같이 발전하고 있음 여기서 잠시 폴리글랏이란? 여러개의 언어를 사용하는 것을 말한다. 원래 사용은 실 세계 언어에 대해 적용하는 단어지만 미국에서는 이미 오래전부터 이 용어가 사용 되었다고 한다. 그래서 Event Driven 이란 무엇일까? Event Driven이란 용어는 IT에서 갑자기 나온 키워드는 아닙니다. 2018년 유망한 기술 트랜드 중 하나로 뽑히기도 했습니다. 이것으로 보아 아직까지도 영향력이 대단한 것 같습니다. Event Driven은 Progr..
Kotlin 코루틴(Coroutine)을 이용한 비동기 처리에 대해서 간단히 알아보자! Coroutine 사용하기import kotlinx.coroutines.*Coroutine의 특징제어 범위 및 실행 범위를 지정 할 수 있다. (Scope라 한다)GlobalScope, CoroutineScope를 지원GlobalScope란? 프로그램 어디서나 제어, 동작이 가능한 기본 범위 CoroutineScope란? 특정한 목적의 Dispatcher를 지정하여 제어 및 동작이 가능한 범위 CoroutineScope 를 만들 때 적용가능한 Dispatcher은? Dispatcher.Default : 기본적인 백그라운드동작상세 : CPU 사용량이 많은 작업에 사용합니다. 주 스레드에서 작업하기에는 너무 긴 작업 들에게 알맞습니다.스레드 개수 : Dispatchers.DEFAULT는 forkJoinPoo..