본문 바로가기

Develop15

[Java] 0. 연습 프로젝트 생성 직장에서 사람들을 모아 java스터디를 시작했다. 기술면접 대비도 슬슬 시작해야 할 것같아 java에 대해 심층적으로 알아보기로 했다. 단순 책만 보는 것보다는 백문이불여일타, 직접 디버깅을 해보며 공부하면 좋을 것 같아 다양한 java 소스를 테스트해볼 수 있는 샘플 프로젝트를 하나 만들기로 했다. 프로젝트 환경 - OS : macOS Monterey(Apple M1) - IDE : IntelliJ 우선 인텔리제이를 열고 새 프로젝트를 생성한다. 새 프로젝트를 생성하고 나면 어떤 JDK를 사용할지 정해야한다. 내가 연습해보고 싶은 내용은 Java8이었는데 바쁘다 바빠 IT업계는 이미 버전17까지 나와있는 모양이었다... 추가 라이브러리와 프레임워크도 선택은 가능했지만, Java공부를 위한 프로젝트라 추.. 2022. 3. 20.
[Kafka] 0. 카프카와 MSA 현재 프로젝트에서 아키텍처로 MSA를 적용하여 개발하다보니, 카프카를 볼 일이 상당히 많다. MSA구조의 특성상 타파트 Table에 변경되는 내용을 비동기식으로 처리해야하는 상황이 많은데, 그때 쓰이는 것이 카프카이다. 하지만 내가 개발하는 부분은 카프카로 데이터를 Entity에 맵핑해서 테이블에 저장하는 부분만 개발하지 전반적인 설계는 아키텍처팀에서 담당한다. (그래도 개발하다보면 여러 상황때문에 알고싶지 않아도 구조를 알아야 개발이 가능하긴하다) 지난 몇개월 카프카를 사용해보며 MSA구조와 Miss-communication의 정수를 몸소 겪을 수 있었다. MSA라는 아키텍처는 단순 아키텍처가 아니라 이전까지 개발했던 방법론과 프로세스를 완전히 바꿔야 구현 가능한 것이기에 그 과도기에서 오는 시행착오인.. 2022. 3. 13.
[자료구조] | [Python] | DFS 깊이우선탐색 | BFS 너비우선탐색 1. 정의 https://www.youtube.com/watch?v=_hxFgg7TLZQ 2. 선언 Graph - 딕셔너리 dictionary DFS - 스택 stack BFS - 큐 queue itertools 3. 기본 매소드 List와 같다 4. 활용 - 순서에 집착하는 출력 - 모든 경로 다 해보기 - 비선형자료구조 탐색 2021. 8. 5.
[Python] | permutations 사용법 | combinations 사용법 | 순열 | 조합 1. 정의 순열 : 몇 개를 골라 순서를 고려해 나열한 경우의 수 조합 : 몇 개를 골라 순서를 고려하지 않고 나열한 경우의 수 2. 선언 import itertools arr = ['A', 'B', 'C'] nPr = itertools.permutations(arr, 2) ##순열 #[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] nCr = itertools.combinations(arr, 2) ##조합 #[('A', 'B'), ('A', 'C'), ('B', 'C')] 3. 기본 매소드 4. 활용 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3.. 2021. 8. 5.
[자료구조] [ Python ] 리스트 List 사용법 1. 정의 문자열 2. 선언 list = [ ] #길이가 정해진 리스트 선언 list = [0 for i in range(n)] #0으로 초기화 된 2차원 배열 matrix = [[o for col in range(m)] for row in range(n)] # m x n matrix 3. 기본 매소드 #Slicing list[start : end : term] #길이구하기 len(list) #삭제하기 del list[idx] #요소 추가 list.append(x) list.insert(idx, x) # idx번째에 x를 list += [x, y] #확장extend #정렬 list.sort() list_new = sorted(list) #마지막요소 반환 list.pop() 참고 : https://jobc.. 2021. 8. 2.
[ Python ] | heapq 사용법 | heapsort, 우선순위큐 1. 정의 complete binary tree 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조를 제공 => 원소들이 항상 정렬된 상태로 추가되고 삭제 2. 선언 import heapq #다른 list를 heap으로 만든다 heapq.heapify(list) #새로 선언 heap = [] heapq 모듈은 일반 list로 선언해도 heap으로 쓸 수 있다. 자바의 PriorityQueue 클래스처럼 리스트와 별개의 자료구조가 아닌 점에 유의해야함. 3. 기본 메소드 #원소추가 heapq.heappush(list, x) #(heap, 원소) #원소삭제 -> 최소값 삭제(반환) heapq.heappop(list) #삭제하지않고 최소값 얻기 heap[0] 4. 활용 기본 제공되는 .. 2021. 8. 2.