
들어가기 전 설명 현재 구현한 코드들은 GitHub 에 있습니다. 글을 보다가 헷갈리시면 소스코드로 참고 해주시기 바랍니다.또한, JAVA console으로 구현하였습니다. 게임 규칙 게임 딜러와 플레이어 1대1로 진행합니다.딜러를 포함한 플레이어에게 카드 두 장을 나누어주고, 딜러의 카드 한 장은 게이머에게 보이지 않습니다.딜러는 카드의 합이 16 이하면 무조건 한 장을 더 받아야 하고, 17 이상의 경우에는 멈추어야 합니다.딜러의 카드와 합이 같으면 비깁니다. 게이머는 먼저 받은 카드 두 장의 합이 21에 못 미치면 한 장씩 더 받을 수 있고, 멈출 수도 있습니다.게이머는 카드의 합이 딜러보다 먼저 21이 되거나 딜러보다 21에 가깝게 되면 이기고, 카드를 더 받았는데 21을 초과하면 집니다. 카..

들어가기 전 설명 현재 구현한 코드들은 GitHub 에 있습니다. 글을 보다가 헷갈리시면 소스코드로 참고 해주시기 바랍니다.또한, JAVA console으로 구현하였습니다. 게임 규칙 게임 딜러와 플레이어 1대1로 진행합니다.딜러를 포함한 플레이어에게 카드 두 장을 나누어주고, 딜러의 카드 한 장은 게이머에게 보이지 않습니다.딜러는 카드의 합이 16 이하면 무조건 한 장을 더 받아야 하고, 17 이상의 경우에는 멈추어야 합니다.딜러의 카드와 합이 같으면 비깁니다. 게이머는 먼저 받은 카드 두 장의 합이 21에 못 미치면 한 장씩 더 받을 수 있고, 멈출 수도 있습니다.게이머는 카드의 합이 딜러보다 먼저 21이 되거나 딜러보다 21에 가깝게 되면 이기고, 카드를 더 받았는데 21을 초과하면 집니다. 카..

프록시 패턴이란? 대상 원본 객체를 대리(대신) 처리하게 함으로써 로직의 흐름을 제어하는 구조패턴입니다.이 프록시를 통해서 크게 2가지인 접근 제어 (권한에 따른 접근 차단, 캐싱, 지연 로딩) , 부가 기능 추가 일을 할 수 있습니다. 프록시 패턴 vs 데코레이션 패턴 두 패턴 모두 둘 다 프록시를 사용한다는 공통점이 있지만 이 둘의 의도(intent)에 따라서 구분됩니다.이번 배울 프록시 패턴은 접근 제어가 목적이며 데코레이터 새로운 기능, 부가 기능 추가가 목적입니다. 프록시 패턴의 구성요소 프록시 패턴은 다음과 같은 구성요소로 이루어져 있습니다. 실제 주체 (Real Subject) : 원본 대상 객체주체 (Subject) : Proxy와 RealSubject를 하나로 묶는 인터페이스프..

전략 패턴이란? 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고 사용하며, 동적으로 전략 수정이 가능한 패턴입니다.풀어서 설명한다면, 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있는 패턴입니다. 전략 패턴 vs 템플릿 메서드 패턴 두 패턴 모두 알고리즘을 실행(런타임) 중에 알고리즘을 동적으로 적용한다는 공통점이 있지만이번 배울 전략 패턴은 합성(composition)을 통해 해결하고 템플릿 메서드 패턴은 상속(inheritance)을 통해 해결합니다. 이해하기 쉽게 말하면 전략 패턴은 Interface를 의존하여 OCP인 개방 폐쇄 원칙을 잘 지키며 앞으로도 많이 사용될 디자인 패턴이지만 템플릿 메서드 패턴은 부모 클래스를 상속받아 부모 클래스의 코드..

템플릿 메서드 패턴이란? 템플릿 메서드 패턴을 객체지향 디자인 패턴 중 하나로, 기능의 뼈대(템플릿)와 실제 구현을 분리하는 패턴입니다.즉, 상위 클래스(추상 클래스)에서 알고리즘 골격을 정의하고 하위 클래스 (상속 받은 클래스)에서는 알고리즘의 특정 단계를 재정의할 수 있는 것입니다. 아래 [그림1] 은 템플릿 메서드를 보여주고자 하였고 왼쪽은 기본틀이며, 오른쪽은 제가 설명하기 위해 예시로 만든 틀입니다. 들어가기 전 단어 알기 훅 메서드 (hook method)추상 클래스에서 추상 메서드로 선언하며, 기본 구현만 제공하는 메서드입니다.이제 하위 (구현, 자식) 클래스에서 추상 메서드를 오버라이딩하여 사용할 수 있습니다. 템플릿 메서드 특징 템플릿 메서드 패턴은 다음과 같은 특징을 가..

목차1. ThreadLocal 특징2. ThreadLocal 주요 메서드3. ThreadLocal 예제 코드 4. ThreadLocal 실무 주의 사항5. 주의 사항 문제 해결 ThreadLocal은 무엇인가? 우선 Thread(스레드)는 프로세스 내에서 실행되는 흐름의 단위를 뜻합니다.즉, 하나의 프로세스 내에서 동작하는 여러 실행 흐름 중 하나인 것입니다. ThreadLocal의 뜻은 "스레드 별로 독립적인 데이터를 관리하기 위한 클래스"라고 말할 수 있습니다.이것을 풀어 해석하면, 각 Thread마다 별도의 데이터 저장 공간을 가지며, 한 Thread에서 저장한 데이터는 다른 Thread에서 접근할 수 없는 것입니다. ThreadLocal의 특징 ..

npm : Node Package Manager Node.js의 기본 패키지 관리자로, Node.js 생태계와의 원활한 통합과 광범위한 패키지 레지스트리로 유명합니다. Node.js 프로젝트에서 코드 종속성을 설치, 관리 및 공유하는 프로세스를 단순화하기 위해 만들어졌습니다. 200만 개가 넘는 패키지의 방대한 저장소를 제공합니다. 장점 빠른 업데이트 속도를 가지고 있어 최신 기능을 빠르게 활용할 수 있습니다. 개발자는 Npm run 명령을 사용하여 실행할 수 있는 "package.json" 파일에 사용자 정의 스크립트를 정의할 수 있습니다. 이 기능을 사용하면 빌드, 테스트, 배포 등 다양한 개발 작업을 자동화하여 개발 workflow를 간소화 할 수 있습니다. 패키지, 스크립트 및 구성을 관리하기 위..

작성하게 된 계기 나는 서버 백엔드 개발자이다.이번에 실무 개발을 하면서 유튜브의 쇼츠, 유튜브의 릴스처럼 짧은 영상을 넘기기(Swipe)를 하는 프론트단 기능구현을 하게 되었다. 웹 앱으로 만들게 되었고 웹, 갤럭시에서 봤을 때는 문제가 없었지만 특이하게 아이폰에서 기능 동작을 테스트하는데몇 번 넘기기(Swipe)를 하고 나서 기능 작동 멈춤과 동시에 새로 고침도 안되는 먹통 현상이 일어 났다. 웹(Chrome) 에 와서 개발자 도구에 성능을 테스트 하게 되었는데 JS Heap, Node, Listener들이 떨이지지 않고 꾸준하게 올라가는 것을 볼 수 있었다.아무리 무지한 사람이라도 "어?!, 이거 계속 올라가서 문제 있는 것 같은데?" 라고 생각한 그래프 였다. 그래서 어떤 형식으로 해결하게 되었는..

개발 환경 Spring Boot 3.2.4 JAVA 17 MacOS Postman v10.22 해당 블로그 코드들은 GitHub에 남겨져 있습니다. ArgumentResolver를 사용하는 이유 컨트롤러에서 매개변수로 사용되는 인자에 대해 공통적으로 처리해야할 로직등이 있을 경우, 중복 코드를 줄이고 공통 기능으로 추출하여 사용하려고 쓴다. 그래서 컨트롤러(핸들러)가 필요로 하는 다양한 파라미터의 값(객체)을 생성할 수 있다. 즉, 커스텀해서 내가 원하는 파라미터(객체)로 변경해서 컨트롤러에서 편하게 사용할 수 있다는 것이다. Tip) Resolver에서 처리할 수 있는 파라미터 목록들 https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-c..

문제 자연수 N과 M이 주어졌을 때, 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 출처 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.net 이 문제는 백트래킹의 기초문제입니다.BFS, DFS는 잘 모른다면 구글에 "백트래킹 알고리즘" or "BFS 알고리즘" 을 검색하여 아 이런거구나 정도이해를 하고 오시면 될 것 같습니다. 입, 출력 입력은 첫째 줄에 ..
- Total
- Today
- Yesterday
- 데이터 베이스
- jvm
- aws
- DBeaver
- 코딩테스트
- Cors
- AJAX
- 자바스크립트
- 오라클
- 프론트
- 개발자
- Front
- 개발환경
- 프로세스
- 계단 오르기
- 깃허브 액션
- 실시간 채팅
- spring
- Mac
- 템플릿
- 개발블로그
- Spring Security
- 네트워크
- 디자인패턴
- JavaScript
- git
- 개발
- Fetch
- 비동기
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |