개발 일기장
-
having a better day than yesterday
having a better day than yesterday
velog 로 이사갑니다! (클릭하면 이동)
Post For Me
-
자바 List
자바 List
2020.10.30자바 List 안에 데이터(래퍼, String)가 아닌 객체 일때 정렬하는 방법 즉 List 또는 List 이 아닌 List을 정렬 (키값이 아닌, 데이터를 이용한 정렬) // Map 객체 4개 생성 Map mapData1 = new HashMap(); mapData1.put("name", "데이터 1"); mapData1.put("seq", 1); Map mapData2 = new HashMap(); mapData2.put("name", "데이터 2"); mapData2.put("seq", 2); Map mapData3 = new HashMap(); mapData3.put("name", "데이터 3"); mapData3.put("seq", 3); Map mapData4 = new HashMap(); m.. -
Javascript Json key와 value 가져오기
Javascript Json key와 value 가져오기
2020.10.07출처 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys Object.keys() The Object.keys() method returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would. developer.mozilla.org json에서 key와 value 꺼내오는 예제 var json = { id : "test", pwd : "1234" }; var keys = Object.keys(json); //키를 가져옵니다. 이때, keys 는 반복가능한.. -
프로그래머스 문제풀이 (알고리즘) - 표 편집 [2021 카카오 채용연계형 인턴십]
프로그래머스 문제풀이 (알고리즘) - 표 편집 [2021 카카오 채용연계형 인턴십]
2021.08.19문제 https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 들어가기 앞서 문제 풀이에 쓰인 enum 클래스와 command 클래스 static class Command { private static Type type; private static Integer spec; public Command(String str) { if (str.startsWith("U")) .. -
프로그래머스 문제풀이(알고리즘) - 보석 쇼핑[카카오 인턴]
프로그래머스 문제풀이(알고리즘) - 보석 쇼핑[카카오 인턴]
2021.08.18시도 1 (오답) 보석의 종류가 n 개라면 모든 구간은 최소 n 의 길이 이상이다. n 부터 n + 1, n + 2 ... 순서대로 탐색하면서 가장 처음 발견한 조건을 리턴하면 된다고 생각했다. public int[] solution(String[] gems) { // 필요한 보석의 최소 수를 구한다. Set gemStones = new HashSet(); for (String gem : gems) { gemStones.add(gem); } int target = gemStones.size(); int start = 0, end = 0; while (start == 0) { for (int i=0; i -
프로그래머스 문제풀이(알고리즘) - 단어 변환
프로그래머스 문제풀이(알고리즘) - 단어 변환
2021.08.09https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 시도 1 단어 사이에 변환 될 수 있는 경로가 있다고 생각을 했고 따라서 너비 우선 탐색을 통해서 문제를 풀기로 함 처음엔 늘 그렇듯 절차지향적인 코드로 시작 public int solution(String begin, String target, String[] words) { List wordList = new Arr.. -
프로그래머스 문제풀이 (알고리즘) - 도둑질
프로그래머스 문제풀이 (알고리즘) - 도둑질
2021.08.07문제 https://programmers.co.kr/learn/courses/30/lessons/42897# 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 시도 3 (정답) 이 집을 털 수 있는 경우와 이 집을 털 수 없는 경우 중에서 더 많은 금액을 보유할 수 있는 경우를 선택해야 하는 문제로 생각 만약 i 번 집에 도착했을 때 가지고 있는 최대 금액을 dp[i] 라고 하면, 다음과 같이 2경우가 생긴다 * 이 집을 털 수 있는 경우 => 이전 집을 털지 않은 것. 최대 금액을 훔쳐야 하기 때문에 이 집은 .. -
프로그래머스 문제 풀이 (알고리즘) - 징검다리
프로그래머스 문제 풀이 (알고리즘) - 징검다리
2021.08.07문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 첫 시도 문제의 distance 는 최대 1,000,000,000 으로 매우 커서, 임의로 n 개의 바위를 선택해서 제거하는 방법으로는 문제를 풀 수 없을 것이라고 생각함 따라서 바위 위치를 거리로 정렬을 한 뒤, 바위 사이 거리를 모은 배열을 구하고 그 사이 거리가 가장 짧은 것 부터 순서대로 바위를 제거하기로 결정함 좌측과 우측의 바위.. -
HTTP Request, Content-Type 이란?
HTTP Request, Content-Type 이란?
2021.07.22Content-Type 이란? https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Content-Type Content-Type - HTTP | MDN Content-Type 개체 헤더는 리소스의 media type을 나타내기 위해 사용됩니다. developer.mozilla.org MDN 에서는 Content-Type을 다음과 같이 정의하고 있습니다. 응답 내에 있는 Content-Type 헤더는 클라이언트에게 반환된 컨텐츠의 컨텐츠 유형이 실제로 무엇인지를 알려줍니다. 말이 조금 어려우니 정리를 해봅니다. 응답 헤더에 Content-Type을 포함할 수 있으며 이는 응답의 유형 (보통 Body의 데이터 유형)이 어떻게 되는지 클라이언트 (응답을 받을 시스..
Post Recently
-
Reactive Programing
Reactive Programing
2022.03.05Reactive Programming 데이터 흐름과 전달에 관한 프로그래밍 패러다임 리액티브 스트림을 사용하는 프로그래밍 리액티브 스트림 잠재적으로 무한정 들어올 수 있는 비동기 데이터를 순서대로, 그리고 블록하지 않고 (non-blocking) 역압력(backpressure, 배압, 메세지를 받는 쪽에서 보내는 쪽으로 지속적으로 메세지를 처리할 수 있는지 알려 요청의 양을 조절하는 기술)으로 처리하는 표준 기술 엽압력 (배압, Backpressure) 발행 - 구독 프로토콜에서 이벤트 스트림(발행쪽)의 구독자가 발행된 이벤트를 처리하는 속도보다 느린 속도로 이벤트를 소비하면서 문제가 발생하지 않도록 보장하는 장치이다. 왜 이런 패러다임이 생겼나? 빅데이터/모바일부터 클라우드 기반 클러스터에 이르는 다양.. -
Reactive Stream 이란?, backPressure 이란?
Reactive Stream 이란?, backPressure 이란?
2022.03.05정의 non-blocking, backPressure 를 이용해서 비용기 서비스를 할 때 기본이 되는 스팩이다. Java RxJava, Spring5 Webflux의 Core 에 있는 ProjectReactor 프로젝트 모두 해당 스팩을 사용하고 있습니다. 따라서 비동기 프로젝트를 잘 이해하기 위해서 기본 스펙이 되는 Reactive Stream 에 대한 이해가 필요하다. 개요 non-blocking backpressure 를 이용하여 비동기 스트림 처리의 표준을 제공하는 것 목적, 설계, 범위 지속적으로 들어오는 스트림 데이터를 효율적으로 처리하기 위해서는 비동기 시스템이 효과적이다. 비동기 처리를 하면서 가장 중요한 문제는 데이터 처리가 목적지의 리소스 소비를 예측가능한 범위에서 신중하게 제어할 수 .. -
Java I/O (Input/Output)란?
Java I/O (Input/Output)란?
2022.03.05IO 장치들은 여러 문제가 있음. 다양한 주변 장치가 존재 서로 다른 포멧의 데이터를 전송 서로 다른 속도로 동작 CPU 와 RAM 보다 I/O 작업이 느림 입출력 모듈을 필요로 한다. 여기서 입출력 모듈이란 CPU 와 메모리의 인터페이스이고 하나 또는 그 이상의 주변 장치에 대한 인터페이스를 의미 Programmed I/O (프로그램 입출력) 입출력 모듈 중에 프로그램 입출력은 IO 로 부터 제어권을 CPU 가 가져와서 작업을 진행하는 것으로 CPU 는 입출력 모듈이 명령어의 수행을 완료할 때까지 기다립니다. 따라서 이 방식은 CPU 의 시간을 소모합니다. Java I/O 는 이런 문제점 때문에 파일 입출력이 느리다는 인상을 많이 주었음. 이런 문제점을 Non-blocking IO(nio, New IO.. -
자바 가비지컬렉터. 강한참조 (String Reference), 약한참조 (Weak Reference)
자바 가비지컬렉터. 강한참조 (String Reference), 약한참조 (Weak Reference)
2022.03.03가비지컬렉터 Java의 가비지 컬렉터는 많은 종류가 있지만 크게 두가지 작업을 공통적으로 수행합니다. 힙 메모리 내의 객체 중 가비지를 찾아낸다. 찾아낸 가비지를 처리해서 힙 메모리를 회수한다. 최초의 Java 에서는 이들 가비지 컬렉션 작업에 사용자 코드가 관여 하지 않도록 구현되어 있었습니다. 좀 더 다양한 방법으로 객체를 처리하려는 요구가 있었고 이에 따라 JDK 1.2 부터 java.lang.ref 패키지를 추가해서 제한적이나마 사용자 코드와 GC가 상호작용 할 수 있게 했습니다. java.lang.ref 패키지는 객체를 new로 생성했을 때 생기는 string reference 이외에도 soft, weak, phantom 3가지의 새로운 참조 방식을 각각의 Reference 클래스로 제공합니다... -
spring framework - @Value 가 동작하지 않는다면
spring framework - @Value 가 동작하지 않는다면
2022.02.13환경 : java, springframework 코드 @Component public class TestBean { @Value("${test}") private String test; private String defaultTestValue = getTest(); public TestBean() { System.out.println("Constructor test = " + test); System.out.println("Constructor defaultTestValue = " + defaultTestValue); } @PostConstruct public void init() { System.out.println("PostConstruct test = " + test); System.out.prin.. -
JPA & Mysql 환경에서 데드락 관련 이슈
JPA & Mysql 환경에서 데드락 관련 이슈
2022.02.05참고 https://techblog.woowahan.com/2664/ HikariCP Dead lock에서 벗어나기 (이론편) | 우아한형제들 기술블로그 {{item.name}} 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로 HikariCP에서 Dead lock이 발생할 수 있는 case와 Dead lock을 회피할 techblog.woowahan.com https://techblog.woowahan.com/2664/ HikariCP Dead lock에서 벗어나기 (이론편) | 우아한형제들 기술블로그 {{item.name}} 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로..