19-자동으로 충돌 보고서를 수집하세요

자료 수집 문제를 분석한느 과정에서 도움이 된다고 생각하는 질문만 골라 최소로 물어봐야한다. 질문을 많이 할수록 점점 더 대답은 줄어든다. 충돌을 보고 하는 과정에서 익명성과 사생활 보호를 강조하는 정책이 중요하다. 자동으로 수집한 자료가 개발자가 충돌 원인을 밝히는 데 도움이 될 수 있는지 고민해야된다. 제품의 정확한 버전 운영체제 버전과 인터넷 익스플로러 버전 충돌이 발생한 코드 파일명과 행 번호 문자열로 표현하는 오류 메시지 오류 종류를 위한 고유한 숫자 코드 어떤 작업을 하고 있었는지에 대한 사용자 설명 사용자 이메일 주소 정보를 최소한으로 수집해야된다....

2024-09-15 · 2 min · 331 words

19-스프링 배포하기

배포 옵션 빌드 및 실행 방법 STS나 IntelliJ IDEA 등의 IDE에서 애플리케이션을 빌드하고 실행 메이븐 springboot:run이나 그래들 bootRun 태스크를 사용해서 명령행에서 애플리케이션을 빌드하고 실행한다. 메이븐이나 그래들을 사용해서 실행 가능한 JAR 파일을 생성한다. 메이븐이나 그래들을 사용해서 WAR 파일을 생성한다. 배포 방법 자바 애플리케이션 서버에 배포하기: 톰캣, 웹스피어, 웹로직 등의 자바 애플리케이션 서버에 애플리케이션을 배포해야 한다면, 선택의 여지없이 WAR 파일로 애플리케이션을 빌드해야 한다. 클라우드에 배포하기: AWS, Azure 등의 클라우드 플랫폼으로 배포한다면, 실행 가능한 JAR 파일이 최사으이 선택이다....

2024-09-15 · 3 min · 507 words

18870

편집 시간: 2022년 2월 16일 오후 3:43 코드 Algorithm/18870.py at main · Junroot/Algorithm 풀이 좌표를 압축하기 위해서는 해당 숫자가 몇 번째로 큰 지 확인해야되기 때문에 정렬을 할 수 밖에 없다. 최대한 적은 개수를 정렬하기 위해서, 중복된 수를 제거한 뒤 정렬을 했다.

2024-09-15 · 1 min · 41 words

1865

오답 여부: o 편집 시간: 2022년 2월 24일 오후 3:49 코드 Algorithm/1865.py at main · Junroot/Algorithm 풀이 문제 그대로 음의 사이클이 존재하는지 확인하면 된다. 벨만 포드 알고리즘을 사용하면 음의 사이클을 확인할 수 있다. 처음에는 시작노드를 1부터 n까지 모든 경우를 다 확인해서 음의 사이클이 발생하는지 확인했는데 이는 시간초과가 발생헀다. distances = [INF for _ in range(n + 1)] 로 시작하고, 값 갱신 조건에 distances[next] != INF 를 빼면 한번의 벨만 포드 알고리즘만으로 해결이 가능하다....

2024-09-15 · 1 min · 85 words

1806

편집 시간: 2022년 3월 3일 오후 2:02 코드 Algorithm/1806.py at main · Junroot/Algorithm 풀이 루프문을 돌면서 해당 index로 끝나는 가장 짧은 수열을 찾는 방식으로 문제를 풀었다. 가장 잛은 수열을 구했다면, 다음 index에서는 앞의 수열에 index에 해당하는 수를 추가해주고 앞에서부터 s이상이 되는 가장 짧은 수가 되도록 수를 하나씩 빼주면 된다. 선입선출 때문에 나는 큐를 이용해서 문제를 풀었지만, 큐의 시작 부분과 끝 부분만 알고 있으면 풀 수 있기때문에 인덱스 두 개로 충분히 풀 수 있다....

2024-09-15 · 1 min · 73 words

18-더불어 살기

윈도우와 유닉스는 기능적인 차이점 보다는 유사점이 더 많다. 윈도우와 유닉스에는 기능적 차이점 보다는 문화적인 차이점이 존재한다. 유닉스 문화는 다른 프로그래머에게 유용한 코드를 제공하는 것에 가치를 두는 반면, 윈도우 문화는 프로그래머가 아닌 사람에게 유용한 코드를 제공하는 것에 가치를 둔다. 유닉스 프로그래밍 문화는 명령행에서 호출할 수 있고 모든 동작 방향을 제어할 수 있는 인수를 취할 수 있다. 유닉스 프로그래밍 문화는 질서 정연하며 기계가 읽을 수 잇는 일반 텍스트 형식으로 출력을 뽑아낼 수 있는 프로그램을 높게 평가한다....

2024-09-15 · 1 min · 161 words

18-JMX로 스프링 모니터링하기

JMX(Java Management Extensions): 자바 애플리케이션을 모니터링하고 관리하는 표준 방법 JMX는 MBeans(managed beans) 컴포넌트를 노출함으로써 외부의 JMX 클라이언트는 오퍼레이션 호출, 속성 검사, MBeans의 이베트 모니터링을 통해 애플리케이션을 관리할 수 있다. JMX는 스프링 부트 애플리케이션에 기본적으로 자동 활성화된다. 이예 따라 모든 액추에이터 엔드포인트는 MBeans로 노출된다. 또한, 스프링 애플리케이션 컨텍스트의 어떤 다른 빈도 MBeans로 노출할 수 있게 했다. 액추에이터 MBeans 사용하기 스프링 부트는 /heapdump를 제외한 모든 액추에이터 엔드포인트가 HTTP처럼 명시적으로 포함시킬 필요 없이 기본으로 MBeans로 노출되어 있다....

2024-09-15 · 1 min · 183 words

17685

날짜: 2022년 8월 23일 오전 11:21 코드 Algorithm/17685.py at main · Junroot/Algorithm 풀이 단순하게 단어하나씩 입력을 늘려가면서 구하게되면 O(N*L)로 타임아웃이 발생할 것이다. 트라이를 이용해 중복되는 계산 부분을 제거하면 시간복잡도를 O(L)로 줄일 수 있다. 위 사진은 ‘go, gone, guild’를 트라이로 만들었을 때의 그림이다. 오른쪽 상단은 존재할 수 있는 단어 개수, 오른쪽 하단은 해당 글자로 끝나는 단어가 있는지 여부를 나타내는 true, false를 나타낸다. 최종 답을 찾을 때는 오른쪽 상단이 1이거나, 현재 글자로 끝이나는 단어의 depth를 모두 더해주면된다....

2024-09-15 · 1 min · 75 words

17682

날짜: 2022년 7월 12일 오후 7:08 코드 Algorithm/17682.py at main · Junroot/Algorithm 풀이 단순 구현문제다. 파싱을 한뒤 문제조건에 맞게 구현하면된다.

2024-09-15 · 1 min · 20 words

17681

날짜: 2022년 7월 12일 오후 8:01 코드 Algorithm/17681.py at main · Junroot/Algorithm 풀이 간단한 구현문제다.

2024-09-15 · 1 min · 15 words

17679

날짜: 2022년 7월 8일 오후 6:43 코드 Algorithm/17679.py at main · Junroot/Algorithm 풀이 단순 구현 문제다. 더 이상 제거되는 블록이 없을 때까지 반복하면 된다.

2024-09-15 · 1 min · 24 words

17678

날짜: 2022년 7월 6일 오전 10:34 코드 Algorithm/17678.py at main · Junroot/Algorithm 풀이 크루들이 타게되는 버스를 모두 차례대로 계산한 뒤에, 콘이 마지막 버스를 타기위해 언제 나오면 되는지를 계산하면된다. 마지막 버스가 만원인 경우 마지막 버스에 마지막에 타는 크루보다 1분 빨리 도착하면 된다. 마지막 버스가 만원이 아닐 경우 마지막 버스의 도착시간에 맞춰서 도착하면 된다.

2024-09-15 · 1 min · 52 words

17676

날짜: 2022년 3월 8일 오후 3:41 코드 Algorithm/17676.py at main · Junroot/Algorithm 풀이 2가지 문제를 해결해야 됐다. 로그를 기반으로 처리시각의 시작 시각과 끝 시각 구하기 초당 최대 처리량 구하기 처리시각 구하기 ms 단위로 처리해야되기 때문에 2016-09-15에서 몇 ms가 지났는지를 기준으로 처리하기로 했다. 로그의 마지막 부분인 처리시간 T를 ms단위로 변환하는 것에 어려움이 있었는데, 로그에 적혀있는 숫자 개수를 기반으로 처리했다. 숫자의 개수가 0이 될 때까지 뒤에 0을 더 붙이는 형식으로 구현했다. def second_to_ms(second): result = 0 digit_count = 0 for c in second: if "0" <= c <= "9": result = result * 10 + int(c) digit_count += 1 while digit_count < 4: result *= 10 digit_count += 1 return result 초당 최대 처리량 구하기 처음에는 0ms부터 24 * 60 * 60 * 1000ms 까지 모든 경우를 다 구하려고했는데 이 방법은 당연히 시간 초과가 발생했다....

2024-09-15 · 1 min · 199 words

1764

편집 시간: 2022년 2월 12일 오후 9:49 코드 Algorithm/1764.py at main · Junroot/Algorithm 풀이 m과 n이 500,000 이하의 자연수기 때문에 정렬해도 문제가 없다는 것을 알 수 있다. 듣도 못한 사람 명단과 보도 못한 사람 명단을 정렬한 뒤 각각의 인덱스를 i, j로 기억하고 더 작은 이름의 인덱스를 1씩 늘리면서 비교하면된다.

2024-09-15 · 1 min · 49 words

1753

편집 시간: 2022년 5월 3일 오후 5:50 코드 Algorithm/1753.py at main · Junroot/Algorithm 풀이 힙을 이용한 다익스트라 알고리즘을 사용하면 구현이 가능하다.

2024-09-15 · 1 min · 21 words

17-컴퓨터과학 분야에서 떠도는 세가지 미신

검색에서는 충분한 결과를 찾는 기술이 가장 어렵다. 구글의 페이지랭크 알고리즘은 원하는 결과가 최상위 10개 안에 들어가도록 헤아릴 수 없이 수많은 검색 결과를 정렬하는 가장 뛰어난 방법이다. 앤티앨리어스 anti-aliased 문자가 더 보기 좋다. 앤티앨리어스는 컬러 디스플레이의 해상도가 낮을 때, 회색 그림자를 사용해서 해상도 ‘착각’을 불러 일으키는 편이 보기에 좋다는 생각에서 출발했다. 하지만 앤티앨리어스 문자로 구성된 단락을 읽을 때, 흐릿해 보인다는 문제점이 있다. 앤티앨리어스는 전체적인 외형이 지속적인 가독성보다 중요한 표제와 로고, 그리고 그림이라는 두 가지 측면에서 매우 뛰어난 기술이다....

2024-09-15 · 1 min · 142 words

17-스프링 관리하기

스프링 부트 Admin 사용하기 스프링 부트 Admin은 관리용 프론트엔드 웹 애플리케이션이며, 액추에이터 엔드포인트를 사람들이 더 많이 소비할 수 있게 한다. 액추에이터 엔드포인트는 두 개의 주요 구성 요소로 나뉜다. 스프링 부트 Admin 클라이언트 Admin 서버 생성하기 일반적으로 Admin 서버는 독립 실행형 애플리케이션으로 사용된다. 의존성 추가 구성 클래스에 @EnableAdminServer 애노테이션 추가 아래 사진에서는 현재 0개 애플리케이션의 0개의 인스턴스가 등록되어 있는 것이다. Admin 클라이언트 등록하기 두 가지 방법 각 애플리케이션이 자신을 Admin 서버에 등록 Admin 서버가 유레카 서비스 레지스트리를 통해서 서비스를 찾기 각 애플리케이션이 자신을 Admin 서버에 등록 의존성 추가 spring....

2024-09-15 · 3 min · 565 words

1697

편집 시간: 2022년 2월 9일 오후 6:45 코드 Algorithm/1697.py at main · Junroot/Algorithm 풀이 bfs를 이용하여 탐색하다가 처음으로 k에 도달하는 지점의 시간을 출력하면 된다. 이 때 중복된 위치를 탐색하는 것을 방지하기 위해서 visited라는 집합을 만들어 사용했다.

2024-09-15 · 1 min · 36 words

1629

편집 시간: 2022년 2월 24일 오후 2:35 코드 Algorithm/1629.py at main · Junroot/Algorithm 풀이 제곱을 이용해서 분할 정복을 했다.

2024-09-15 · 1 min · 19 words

1620

편집 시간: 2022년 2월 16일 오후 3:46 코드 Algorithm/1620.py at main · Junroot/Algorithm 풀이 해쉬 맵을 이용하면 어려움 없이 해결할 수 있다. 숫자에 해당하는 이름과 이름에 해당하는 숫자를 해쉬 맵으로 따로 저장한뒤 출력하면 된다.

2024-09-15 · 1 min · 34 words