일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 싱글톤 컨테이너
- 20055 컨베이어 벨트 위의 로봇
- 백준 13460 Python
- 13460 구슬탈출 2
- 스프링 핵심 원리 - 기본편
- 객체 지향 설계와 스프링
- 자바 ORM 표준 JPA 프로그래밍 7장
- Kotlin in action 6장
- Kotlin in action 10장
- 코틸린인액션
- 코틀린
- 컨베이어 벨트 위의 로봇 Python
- 백준 20055 컨베이어 벨트 위의 로봇
- Kotlin in action 5장
- Python
- 7장 고급매핑
- Kotlin in action 3장
- Kotlin In Action
- 스프링 컨테이너와 스프링 빈
- 스프링 핵심 원리 이해
- 백준
- 20055
- kotlin in action 정리
- 기능개발 python
- Kotlin
- KotlinInAction
- 코틀린인액션
- 고급매핑
- 스프링 핵심 원리
- spring
- Today
- Total
기록하는 습관

[ Spring Container(스프링 컨테이너) ] ApplicationContext 를 스프링 컨테이너라 한다. 스프링 컨테이너는 @Configuration이 붙은 AppConfig를 설정(구성) 정보로 사용한다. 여기서 @Bean이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다. 스프링 빈은 @Bean 이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다. ( memberService , orderService ) 스프링 빈은 applicationContext.getBean() 메서드 를 사용해서 찾을 수 있다. 스프링 컨테이너 생성 ApplicationContext를 스프링 컨테이너라 하고 인터페이스이다. 스프..

[ 들어가며 ] 이번 프로젝트는 순수 Java를 활용한 코드로, Spring 요소가 들어가지 않음. DI와 DI Container가 어떤 역할을 하는지 아는 것이 핵심. SOLID 관점에서 DI 적용 전/후를 비교해서 보는 것이 핵심. [ 비즈니스 요구사항과 설계 ] 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있 다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아..

[ 좋은 객체 지향 설계의 5가지 원칙 (SOLID 원칙) ] 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open/Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 관계 역전 원칙 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 하나의 클래스는 하나의 책임만 가져야 한다. 변경이 있을 때 영..

문제 www.acmicpc.net/problem/13460 코드 """ 성공 조건: 빨간 구슬을 구멍에 빠뜨리기 실패 조건 1. 파란 구슬이 구멍에 빠지면 실패. 2. 빨간 구슬, 파란 구슬 동시에 구멍에 빠져도 실패. 3. 빨간 구슬과 파란 구슬이 동시에 같은 칸에 있을 수 없다. 4. 10번 이하로 움직여서 빨간 구슬을 구멍으로 빼낼 수 없으면 실패. """ from collections import deque n, m = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(str, input()))) visit = [[[[False] * m for _ in range(n)] for _ in range(m)] fo..

문제 www.acmicpc.net/problem/16932 (미완) 예제 통과, 백준 런타임 에러 코드 n, m = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(int, input()))) visit = [[0] * 1000 for _ in range(1000)] count = 0 groupNum = 1 group = [0] * 1000002 dx = [-1, 1, 0, 0] # 상, 하, 좌, 우 dy = [0, 0, -1, 1] def dfs(x, y): global count count += 1 visit[x][y] = groupNum for i in range(4): nx, ny = x + dx[i], ..

문제 www.acmicpc.net/problem/2178 코드 from collections import deque n, m = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(int, input()))) dx = [-1, 1, 0, 0] # 상, 하, 좌, 우 dy = [0, 0, -1, 1] def bfs(x,y): q = deque() q.append((x,y)) while q: x,y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx = n or ny >= m: # 가장자리 벽 pass contin..
DFS # dfs 정의 def dfs(graph, v, visited): visited[v] = True print(v, end=' ') for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2, 3, 8], [1, 7], [1, 4, 5], [3, 5], [3, 4], [7], [2, 6, 8], [1, 7] ] visited = [False] * 9 dfs(graph, 1, visited) BFS # bfs 정의 from collections import deque def bfs(graph, v, visited): queue = deque([v]) visited[v] = True while queue: v = queue..

문제 www.acmicpc.net/problem/1068 코드 N = int(input()) parents = list(map(int, input().split())) delete = int(input()) def dfs(delete_node, arr): # delete_node를 부모로 갖는 원소 삭제 parents[delete_node] = -2 for i in range(len(parents)): if delete_node == parents[i]: dfs(i, parents) def main(): dfs(delete, parents) count = 0 for i in range(len(parents)): # leaf node 개수 세기 if parents[i] != -2 and i not in p..