일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- 기술면접공부
- 알고리즘공부
- 자바공부
- 코테준비
- nestjs스터디
- DDD
- JPA스터디
- JPA 공부
- 코테공부
- 자료구조공부
- 스프링부트
- nestjs
- K8S
- querydsl
- 플러터 개발
- Kafka
- 스프링부트공부
- Axon framework
- 프로그래머스
- JPA공부
- 카프카
- 스프링공부
- 플러터 공부
- 기술공부
- nestjs공부
- 스프링
- 스프링 공부
- JPA예제
- Flutter
- Today
- Total
목록분류 전체보기 (715)
DevBoi
트리는 제약 조건이 하나만 있는 간단한 구조이다. 1. 싸이클의 형태를 띄우지 않는다. 이진트리(Binary Search Tree)는 해당 제약 조건에서 2개의 제약 조건이 더 붙는다. 1. 노드의 브랜치는 2개로 제약된다. 2. 노드의 왼쪽은 자신보다 작은 값, 오른쪽은 큰 값을 가지고있는다. import java.util.*; public class Main { public static void main(String[] args) { NodeMgmt mgmt = new NodeMgmt(); mgmt.insertValue(14); mgmt.insertValue(12); mgmt.insertValue(13); mgmt.insertValue(16); mgmt.showAllNodes(mgmt.head); }..
Hash 관련되서, 공부를 해보자, hash는 잘알다 싶이, key-value 로 이루어져 저장하는 구조이다. key를 기반으로 address를 찾아, value를 저장한다. 이를 그냥 저장 할수도 있지만 어떻게 하면 좀 더 잘 이해할수 있을 까 방법은 내가 직접 hash를 구현 해보는 방식이다. Hash는 Key기준으로 별도 address를 가져온다. 따라서 이 key에 해당 하는 address주소가 어떤 값일지 모르기 떄문에 사용하는 량보다 많은 양의 크기를 가지고 있을 수 밖에 없다. key 기준으로 단순히 value 에 값을 넣는 것은 중복 문제를 가질수 있다. 완벽하게 key기준으로 address를 가져오는 함수를 짜면 문제가 안생기겠지만, 그러기는 사실상 어렵다, 따라서 chaining 기법을..
링크드 리스트란, 객체 (흔히 노드라고 표현한다) 현재 자신의 데이터와 다음 노드를 가지고 있는 리스트이다. 처음에 시작점을 알아야 쭉 탐색이 가능하며, 중간에 수정이 들어갈때 불편하고, 탐색을 하려면 처음 head로 시작해서 재귀로, 탐색을 이어 나가야 한다. 쉽게 구현해보면 아래와 같다. 이렇게 재귀를 통해서, 해당 노드에 대한 탐색을 할수있다. 노드는 이렇게 제네릭 타입으로 선언해서, 사용할수 있다. 그러면, 추가와 전체 노드 프린트하는 함수도 구해보자 전체적인 구조를 바꿔야 한다. 전체 링크드 리스트라는 구조 속에 노드들을 넣어야 하기 때문에, class 안에 class를 넣어야 한다. 우선 add함수를 구현해봤다. 제네릭 타입으로 변경했기 때문에, 해당 제네릭 타입으로 add를 했을 경우를 가정..
우선 스택은 LIFO을 쓴다는 것은 누구나 알고..... 직접 구현을 해보자면... 이렇게 해볼수있다.
큐는 배열이나 다른 것과 달리, 일반적인 입력순서가 출력순서에 영향을 주는 자료구조중에 하나이다. FIFO이라고도하고, 줄서기와 같다고도 하고, 무튼 첫번째로 입력된게 첫번째로 출력이 된다. add or offer로 값을 넣고, poll() 로 해당 리스트의 원소를 출력한다. 추가로, 해당 list를 그냥 출력하게 되면, 리스트의 모든 원소들이 출력이 된다. poll()을 하게 되면,해당 원소의 값을 가질수있게 return 이 되지만 해당 원소를 삭제 하고자 하면(순서는 poll과 동일) 아래와 같이 remove를 사용하면 된다. 이런 queue를 내가 별도로 제네릭 타입을 선언해서, add, poll 기능을 하는 것을 만든다고 해보자 아래와 같이 해당을 구현할수 있다. 자, 이제 그러면 예제를 풀어보자
안드로이드 앱개발을 취미로 해보자! 라고 하면서, 오랜만에 이것저것 하게 되었다. 간단하게 예제 및 실습 변형이 가능한 틀 정리를 하려고한다. 안드로이드 네이티브 기술은 프론트엔드쪽 관련 부분이 많아서, 사실 깊숙히 이해할 필요는 나는없다 나는, 백엔드 개발이 주고, 앱은 그냥 출시하면서 재미로 살고싶은 사람이라 ㅋㅋ 무튼 개발 스타트 필요한 리스트 (모델, 어댑터,메인에서 사용방법) 1. 모델 2. 어댑터 3. 메인 예제 간단하게 이렇게 사용하면된다 간혹, 메인에서 내부클래스로 선언하는 방법이 있는데, 이방법은 한 파일에 너무 덕지덕지 소스가 될수 있기 때문에 쉿하고, 그냥 이렇게 사용하는 것을 추천한다. 가져다가, 응용을 위한 복붙 소스이다. package com.smith.myhabit.ui.hom..
연관관계에 대한 매핑 시 주의사항에 대한 공부를 했었고, 해당 공부를 진행하면서 많은 고민을 했었다. 실제로 구현 및 설게를 해보자 Member, Team, order, orderItem에 대한 설게를 해보자. 우선 사전 제약 사항에 대한 설정을 해보자 Member들은 각각의 정보를 가지고있고, 이 Member들에게는 Team의 정보가 포함이 된다. 어떤 Member는 team에 한군데 소속이 될수 있다. 또한 Member가 order들을 가질수있고, 이 order들에게는 orderItem들이 존재할수있다. 마지막으로 orderItem이 order와 item을 이어주는 것이라고생각을 하면 되고, Item은 이 Item에 대한 세부항목 정보이다. 1)Member 해당, memberId는 자동 id 값을 발..
배열, 단순하게는 인덱스로 관리를 하고, 처음에 크기를 설정한다. 배열 관련 알고리즘문제는 너무도 많이 나오기 때문에, 자세한 설명은 생략 1.Arrays 관련 기능 - Arrays.toString(배열); -> 배열의 값을 String으로 출력해준다. - arr1[1].indexOf("hi") -> hi or hi 말고 알파벳 하나일 경우, 해당 문자가 포함된 인덱스를 return 해준다. ex. arr1[1] ="abcd" 1)arr1[1].indexOf("b") -> return 1 알파벳이 없다면, -1을 반환한다. 따라서, 해당 내 문자열 포함 여부는, if(arr1[1].indexOf("g") >= 0) 이런식으로 검사를 한다. - Arrays.sort, (Collections.reverseO..
프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄..
MSA 란 무엇일까? MicroService Architecture 의 줄임말이다. 쉽게 말하면, 정확한 정의는 없다, 마이크로서비스란 작고 독립적으로 배포가능한 각각의 기능을 수행하는 서비스로, 구성된 프레임 워크라고 할수 있다. 독립적으로 배포가 가능하고, 각각의 기능을 수행하는 서비스로 이루어진 프레임워크이다. 기존의 프레임워크를 살펴보자, 해당 프레임워크는, 웹의 경우 War 파일로 빌드되어 was에 배포된다. 주로 소규모 프로젝트에서 사용이 된다. 기존의 프로젝트에서는 이런 프로젝트들은 제약이 많다. 1. 부분 장애가 전체 서비스 장애로 확대될수 있다. 예를 들어서, 어떤 개발자가 메인 페이지의 특정 부분을 개발했다고 가정하자. 실수로 이 개발자는 NPE을 발생시켰고, 이는 메인페이지 전체 페이..