일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주울
- 이분 매칭
- 트리
- dp
- 메모이제이션
- 플로이드 와샬
- 달팽이
- 도커
- 다익스트라
- 구간 트리
- docker-compose
- 완전 탐색
- 유레카
- Spring Cloud Config
- 이분 탐색
- 서비스 디스커버리
- 백트래킹
- 스택
- spring cloud
- Zuul
- Logback
- ZuulFilter
- 비트마스킹
- 구현
- 스프링 시큐리티
- BFS
- Java
- Gradle
- spring boot
- 게이트웨이
- Today
- Total
목록전체 글 (387)
Hello, Freakin world!
최근 토이 프로젝트 엔티티 모델을 설계하면서 든 생각입니다. User(사용자) 라는 엔티티가 있고, Project(프로젝트) 라는 엔티티가 있다고 합시다. - 사용자는 다수 프로젝트에 참여할 수 있습니다. - 하나의 프로젝트에 다수의 사용자가 참여할 수 있습니다. 위 두 가지 요구사항으로 인해 User와 Project가 M:N 관계라는걸 알 수 있습니다. DB 데이터 모델을 설계할 때, 이런 M:N 관계를 풀기 위해서 보통 `중간 테이블` 이라는 걸 두게 됩니다. 중간 테이블의 이름은 무난하게 짓는다면 user_project 정도가 되겠지요. DDD를 배우고나서 다시 바라보니 여기에 한가지 의문이 생깁니다. User와 Project의 도메인은 서로 다르기 때문에 패키지가 서로 분리돼있습니다. UserPr..
우선 1번 글에서 지적한 문제를 해결한 코드부터 살펴보겠습니다. import kotlin.reflect.KParameter class ModelMapper { /** * 반환 클래스의 주 생성자를 통해 값을 바인딩하고 반환하는 mapper */ inline fun mapper(source: T): R { R::class.constructors .last { constructor -> val mutableMap: MutableMap = mutableMapOf() constructor.parameters.forEach { parameter -> mutableMap[parameter] = T::class.members.find { it.name == parameter.name }?.call(source) } ..
우선 ModelMapper를 간단히 소개하자면, http://modelmapper.org/ ModelMapper - Simple, Intelligent, Object Mapping. Why ModelMapper? The goal of ModelMapper is to make object mapping easy, by automatically determining how one object model maps to another, based on conventions, in the same way that a human would - while providing a simple, refactoring-safe API for handli modelmapper.org 위 사이트에서 제공하는 자바 기반의 객체 ..
커맨드 창에 jps 명령어를 치면 실행 중인 자바 프로세스 목록을 볼 수 있다. 앞의 숫자는 PID. kill PID 명령어로 프로세스 종료 가능.
UseEffect 훅의 용도 리액트 컴포넌트가 렌더링될 때마다 특정 작업을 수행하도록 설정할 수 있는 Hook 예제 코드 import {useEffect} from "react"; function App() { useEffect(() => { console.log("화면 렌더링 됨."); }) return ( Hello ); } export default App; return 문에 정의된 JSX가 렌더링 될때마다 useEffect가 호출됩니다. useEffect의 파라미터 function useEffect(effect: EffectCallback, deps?: DependencyList): void; useEffect 함수는 화면이 렌더링 될 때 실행할 콜백 함수와 렌더링을 유발하는 대상 리스트를 파라미..
리액트를 공부하면서 이것저것 만져보면서 element가 처음 올라올 때 변수나 상태값들을 초기화할 수 있는 이벤트가 없나~ 찾아보다가 onload 이벤트를 알게 됐다. 간단하게 알아본 결과 onload 이벤트는 body 태그에서만 사용 가능. div, h1 등 다른 태그에서는 사용할 수 없다. 조금 더 찾아보니 리액트에서 엘리먼트의 초기화 작업을 useEffect 라는 훅으로 해결이 가능한 듯 하다.
리액트 왜쓰지? 실제 페이지의 DOM은 느리다. 왜 느린가? 실제 페이지는 여러 요소들이 중첩되어 있다. DOM을 각 요소들을 하나의 오브젝트로 나타냄. 브라우저는 DOM 요소들이 변할때마다 새로 그려내고, 이 부분에서 성능 저하가 나타남. 이를 개선한게 리액트. Virtual DOM 이라는 개념을 도입. 변경사항을 바로 DOM에 반영하는게 아니라, 리액트 자체의 Virtual DOM 이라는 구조에 변경사항을 쌓아두고 나서 반영. 실제 DOM에 반영하는 횟수를 줄임. 성능의 개선으로 이어짐. Node.js 패키지 관리 도구 npm, yarn 두 가지가 있음. 패키지를 관리해주고 프로젝트를 빌드하기도 하고 실행시킬 수도 있음. maven, gradle 같은 툴인듯? JSX란? 리액트에서 자체적으로 제작한 ..
파이썬에 입문하고 뭔가를 만들어보고 싶다면 이 책을 추천합니다. 무엇보다 책이 얇고, 쉬운 말로 설명해주기 때문에 전체적으로 책이 술술 읽힙니다. 여러 라이브러리를 이용해 웹 크롤링, 통계 분석 등 간단한 앱을 만들어 볼 수 있습니다.
https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net 풀이 방법 이 풀이 방법은 아주 직관적이고 쉽습니다. 1. 1L 물병의 개수가 2의 제곱수인 경우, 하나의 물병에 옮길 수 있다는 점을 이용해, N을 2의 제곱수로 분해한다. (이때 분해된 개수가 물병의 개수다.) 2. 물병의 개수가 K보다 크다면 크기가 작은 물병들부터 합쳐나간다. 예를 들어, N = 11인 경우 8, 2, 1로 분해할 수 있겠죠. 이는 세 개의 물병에 각각 8L, 2L, 1L가 들어..
www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 풀이 아이디어 놓을 수 있는 사다리 위치에 사다리를 하나씩 놓아보고 그때마다 사다리 게임을 돌려 확인하는 방식으로 풀 수 있습니다. 사실 말이 쉽지, 꽤 까다로웠습니다. 구현 문제는 정말 너무 어려운 것 같네요. 가중 중요하게 신경써야될 한 가지 포인트만 소개하겠습니다. putLadderDown의 재귀 방식 putLadderDown 메서드 안에는 이중 for문이 있습니다. 놓을 수 있는 위치에 사다리를 놓고,..