
프림 : 그래프상에 존재하는 모든 노드들을 최소비용으로 연결시키는 알고리즘 다익스트라 : 특정 시작 노드 로부터 그래프 상에 존재하는 모든 노드, 즉 두 노드 사이의 최단거리를 구하는 알고리즘 -공통점 BFS 알고리즘과 유사하지만 BFS랑 다르게 방문할 때 해당 visited 배열 인덱스에 true를 마킹한다. (bfs때는 중복 수행을 막기 위해서 그냥 해당 노드 큐에 넣는 동시에 true를 마킹해버린다.) -차이점 1. 프림은 다익스트라와 달리 두 노드 사이가 최단거리가 아닐 수도 있다. ※ 프림은 1->3의 비용이 3인 반면에, 다익스트라는 1->3의 비용이 2이다. 2. 프림은 무향 그래프에서만 작동하고, 다익스트라는 무향, 유향 그래프에서 모두 작동한다. 3. 프림이 다익스트라를, 다익스트라가 프..

부동산 관련 웹페이지를 구성하는 조별 프로젝트에서 우리는 공개된 여러 무료 부트스트랩 템플릿 사이트에서 템플릿을 다운받아 프로젝트를 진행하기로 했다. 그렇게 기능 별로 나눠서( 나는 관심있는 동네 저장하는 기능 담당했다) 협업을 진행하고 각자 구성한 기능들을 템플릿에 합치는데 한분이 작성한 코드를 합칠 때, 오류가 발생했다.. 그 코드만 따로 실행시켰을 때는 잘 동작해서 이유를 찾는데 애먹었다. 이유는 다운받은 템플릿 폴더 내부에 이미 JQuery, Bootstrap, css등 여러 설정 소스들과 추가한 소스들이 같은 기능을 건드려서 충돌이 발생했던 것이다. 결국 충돌나는 부분들을 제거하니 문제없이 실행되었다!

존재하지 않을 수 있는 매서드를 호출할 때(사용자장치에서 사용안되는 기능과 같은 상황), optional chaining 을 사용한다. optional chaining을 사용함으로써 메서드를 찾을 수 없는 경우에 예외를 발생시키는 것 대신에 undefined를 반환한다. 예를 들어, 중첩된 구조를 가진 객체에서 obj가 있다. optional chaining이 없이 깊이 중첩된 하위 속성을 찾으려면, 다음과 같이 참조를 확인해야 한다 let nestedProp = obj.first && obj.first.second; obj.first의 값은 obj.first.second의 값에 접근하기 전에 null (그리고 undefined)가 아니라는 점을 검증한다. 이는 만약에 obj.first를 테스트 없이 o..

현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 웹 토큰이다. 주로 로그인과 같은 처리는 밑사진 같은 로직을 따라 처리 된다고 보면된다. - JWT의 구조 JWT는 Header , Payload, Signature의 3부분으로 이루어지면 각 부분은 Json 형태이다. 1.Header typ 속성과 alg 속성으로 이루어져있다. alg는 Signature를 해싱하기 위한 알고리즘을 지정하는 속성 typ는 토큰의 타입을 지정하는 속성이다. { "alg": "HS256", "typ": JWT } 2. Payload 토큰에서 사용할 정보의 조각들(Claim, key-valu..

가비지 컬렉션 : 유효하지 않은 메모리 주소인 가비지를 정리해주는 프로그램을 말한다. 참조되지 않는 객체들을 정리해 Heap의 가용공간을 만든다. 장점: 프로그래머가 직접 메모리를 정리하지 않아도 되어 개발속도가 향상된다. 단점: 메모리를 언제 되찾을 지 결정하기 위한 오버헤드 비용이 발생(참조세기,표시세기 등 여러알고리즘 존재) Vector와 ArrayList의 차이는 동기식과 비동기식의 차이이다. Vector는 동기식이라 한 스레드가 해당 벡터 작업중이면 다른 스레드에서 동시 작업이 불가능하다. ArrayList는 비동기식이라 여러 스레드가 동시에 ArrayList에서 작업이 가능하다. String / StringBuffer / StringBuilder 차이 String은 immutable(불변) 속..
주어진 문제가 최적화의 원칙을 만족해야만 동적 계획법을 적용할 수 있다. (최적화의 원칙 : 어떤 문제에 대한 해가 최적일 때 그 해를 구성하는 작은 문제들의 해 역시 최적임) DP는 문제의 순환적 성질 떄문에 이전에 계산되었던 작은 문제의 해가 어딘가에서 필요하게 되는데 이를 위해 DP에서는 이미 해결된 작은 문제들의 해를 어떤 공간(동적 Table)에 적용해야 한다. DP에는 부분 문제들 사이에 의존적 관계가 존재하고 이 관계를 찾는게 DP문제 해결의 핵심이라고 볼 수 있다. DP의 핵심은 메모이제이션! 상향(bottom-up)식방법은 통상 반복문으로 해결하고 하향식(top-down) 방법은 재귀로 해결한다. Arrays.binarySearch( array , value ) 에서 value 가 arr..
- Total
- Today
- Yesterday
- 왜 트랜스지방은 살 찜
- vue정리
- 프로시저 #배치 #스케쥴러 #잡 #바인딩변수
- safe operator
- JAVA설치 #JDK #JRE
- 스프링 동작흐름
- 스프링 동작흐름 #ioc #di #dispatcherservlet
- vue 특징
- Java
- 퍼블리싱 #앱에서 DB바로 안붙이는 이유
- #web /was 구분이유
- gc란 뭘까
- SQLD 후기
- 버팀목 국민은행
- Property or method "" is not defined
- Optinal Chaining
- gc 기본 동작 원리
- Netlify #CICD
- git branch strategy
- 부트스트랩 템플릿 사용시 충돌
- 알고리즘 나머지연산
- SSAFY 6기
- java 김영한 강의 #2chapter
- 청년 버팀목 대출
- 나머지연산 분배법칙
- java gc
- 스프링 기본 구조
- 원자 원소 분자 차이점
- Prim vs Dijkstra
- java garbage collector 기본
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |