MSA에 대한 학습을 진행하기 위해 MSA에 대한 개요와 리엑티브 프로그래밍을 학습했다. Async + Nonblocking, Publish, Subscribe, webflux 등 MVC가 아닌 생소한 백엔드 개발 영역 학습을 진행했다. 첫 주차, 과제 리엑티브 프로그래밍 실습을 진행하며, reactor의 각 종 연산자, publisher, subscribe, schedule로 쓰레드 관리를 이해하고 실습해보았다. 완벽히 이해하고 사용하는 실습은 아니어서, 아직 부족한게 많지만 조금씩 더 채워나가야 겠지.. :) /** * ["Blenders", "Old", "Johnnie"] 와 "[Pride", "Monk", "Walker”] 를 순서대로 하나의 스트림으로 처리되는 로직 검증 */ @Test pub..
AppConifg.java (순수자바로 설정 클래스) public class AppConfig { //memberService는 AppConfig를 통해 불러낸다. //생성자 주입 : 생성자를 통해서 객체를 주입. public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } public OrderService orderService(){ return new OrderServiceImpl(memberRepository(), discountPolicy()); } ..
프록시 패턴을 활용한 AOP ( 백기선 inflearn 강의 참고 )
팩토리 메소드 패턴에서 템플릿 메소드 패턴의 사용됨을 안다. 팩토리 메소드 패턴에서의 구조와 구현의 분리를 이해 creator 클래스 내에 create 함수가 템플릿 메소드 패턴처럼 여러 단계로 나누어지는 경우가 있다. ex ) oper1 실행 후 oper2 실행 ... 이것을 사용 요구사항 게임 아이템과 아이템 생성 구현 아이템을 생성하기 전에 데이터 베이스에서 아이템 정보 요청 아이템 생성 후 아이템 복제 등 불법 방지를 위해 DB에서 아이템 생성정보를 남김 아이템을 생성하는 주체를 ItemCreator로 이름을 짓는다. 아이템은 item이라는 인터페이스로 다룬다( use함수를 기본으로 가지고 있다.) 현재 아이템의 종류는 체력 회복 물약, 마력 회복 물약이 있다. public interface It..
알고리즘을 단계별 메소드로 나눈다! ( Operation1(), Operation2(), Operation3() ); 알고리즘을 수행할 템플릿메소드를 만든다. 하위 클래스에서 메소드 구현 요구사항 1. 신작 게임의 접속 구현 - requestConnection(String str) : String 유저가 접속시 다음을 고려 보안: 보안 처리, 인증: id/pwd 확인, 권한: 유료회원인지 무료회원인지 확인, 접속: 접속자에게 커넥션정보 넘김 추상화 클래스 ( 알고리즘의 단계별 메소드, 정의된 메소드를 이용한 템플릿 메소드 작성 ); public abstract class AbstGameConnectHelper { protected abstract String doSecurity(String string)..
Wrapper 클래스 자바의 primitive type의 객체화 버전이다. 비교PrimitiveWrapper 1 byte Byte 2 short Short 3 int Integer 4 long Integer 5 float Integer 6 double Integer 7 char Character 8 boolean Boolean 박싱 : 기본 타입 -> 래퍼 클래스의 형태로 변환 언박싱 : 래퍼 클래스 -> 기본 타입의 형태로 변환 자바 1.5 버전 이상부터는 박싱/언박싱이 자동으로 됨 사용이유 int [] arr = new int[4]; ArrayList list = new ArrayList() -----> Error ArrayList list = new ArrayList() Integer로 받는 경우에..
어떻게 공부하는게 효율적일지 많이 고민했다. 작년 8월 쯔음이었나 회사에서의 성장은 멈춘 것 처럼 느껴졌다. 책을 읽어보고, 스터디도 해봤지만 성장에 대한 욕구는 더 커졌다. 그렇게 고민하던 중 취준생 멘토링 플랫폼과 연락이 닿았다. 가끔씩 해당 플랫폼에서 개발자를 꿈꾸는 취준생 고민에 대한 답변을 달아주었는데.. 그게 시작이었나보다. 강의를 해보지 않겠냐는 제안을 받았다. 누군가에게 강의를 하며 전달한다면, 좀 더 내게 성장이 될 것이라고 생각했다. 그리고 덜컥 강의를 하기로 했고, 강의 컨텐츠를 만들었다. 처음에는 어떤 컨텐츠를 만들지 막막했지만 강의를 하며 만들어갔다. 주제는 [시각화 파일럿 프로젝트!] 5주의 과정을 만들어 진행했다. 1. Spring 셋팅 2. FrontEnd 이해하기(d3.js..