반응형

분류 전체보기 134

[4월] 이슈 대응하기

210416 1. Receiver에서 많은 일을 처리시, ANR 발생 위험 2. 알람 재설정 메소드 Service에서 작동하기 3. Receiver에서는 alarm object만 설정 4. location object는 service에서 설정하기 5. boot receiver의 알람 재설정 메소드를 담당할 bootService class 제작하기 210419 1. receiver에서 service를 실행하면 알람날짜(시간)에 따라 알람 재설정 분기하기 2. AVD에서 테스트 - 일회용 알람 (O) - 매일 반복 알람 + 위치 (O) - 매일 반복 알람만 (O) - 특정 요일 반복 알람 (O) 3. 알람 등록 페이지에서 '매일'스위치 버튼과 '요일'별 버튼에 유연성을 더했습니다. 210429 1. 알람 해..

[DB] 신입 개발자의 면접 준비

PK와 FK, ERD란? PK: 테이블에서 각 행을 유일하게 구분해주는 칼럼 key로 중복과 NULL값이 불가능한 키 FK: 외래키라고 불리며, 테이블에 있는 하나의 컬럼으로 의미를 표현할 수 없는 경우, 다른 테이블의 PK의 값을 반드시 참조하여 표현하는 key ERD: 요구사항으로부터 구성된 Entity와 Attribute, Relation으로 기술하는 데이터 모델 Entity: 단독으로 존재하는 객체 Attribute: 개체가 갖는 속성, 특징 Relation: 객체와 객체간의 관계를 뜻하며 1:1, 1:N, N:M관계 참조 무결성이란? 기본키와 참조키 간의 관계가 항상 유지됨을 보장하는 것. 테이블의 행을 참조하는 참조키가 존재하는 한 삭제될 수 없고, 기본키도 변경할 수 없다. RDBMS, 관계..

[Java] 신입 개발자의 면접 준비

String, StringBuilder, StringBuffer의 차이를 설명해보세요. - String 객체는 immutable 합니다. 즉, 한번 생성이 되면 변경이 불가능합니다. 반면에, StringBuilder와 StringBuffer의 차이점은 멀티쓰레드 상태에서 동기화의 지원 여부가 다릅니다. StringBuffer는 멀티쓰레드 환경에서 동기화를 보장하지만, StringBuilder는 동기화를 보장하지 않습니다. 추가적으로 설명하자면, String과 StringBuilder는 원래 문자열을 합치는 과정에서 성능차이가 있었지만, JDK 1.5버전 이후부터는 String을 "+"연산할 경우, 동적으로 StringBuilder로 컴파일하여 실행되므로 성능차이가 사라졌습니다. 객체지향 프로그래밍(OOP..

[우아한테크세미나] 우아한 스프링 부트

* 세미나 소개 스프링 부트는 스프링을 통해 자바 엔터프라이즈 애플리케이션 개발을 손쉽게 할 수 있도록 도와주는 툴입니다. 빌드, 개발 배포와 모니터링까지 개발과 관련있는 모든 분야에 도움을 주고 있습니다. 이번 세미나에서 스프링 부트가 어떤 방법으로 어떤 분야에서 자바 엔터프라이즈 애플리케이션 개발을 돕고 있는지 살펴보겠습니다. 스프링부트가 다루는 영역 - 빌드 프로젝트 생성, 의존성 관리, 애플리케이션 패키징 및 실행 - 코딩 개발 툴 제공, 자동 설정, 외부 설정 - 배포 및 관리 도커 이미지 생성, Actuator, 스프링 부트 어드민 start.spring.io로 프로젝트 생성 가능 빌드 툴 maven, gradle (디렉토리 구조의 차이) Spring boot 버전? Snapshot - 개발 ..

[1.1.0] Android API 23에서 강제 종료 문제 해결

🛠 Android 23에서 주소 검색 창에 띄어쓰기가 있는 경우, 강제 종료 문제를 해결했습니다. - 해당 문제는 띄어쓰기가 포함된 요청을 보내면 "%20"으로 변환되어 검색되는 것을 확인했습니다. 이를 적용하여 replaceAll 메서드로 띄어쓰기를 "%20"으로 대체했습니다. 🛠 Android 23에서 알람 해제창이 뜨지않는 문제를 해결했습니다. 🛠 설정된 알람이 처음 울릴 때, 알람이 울리지 않는 현상을 해결했습니다. - 두 문제는 하나의 원인이였는데, Alarm객체의 getLoation_id() 메서드가 NULL을 반환하면서 Service가 제대로 작동하지 않았습니다. Alarm과 Location 클래스를 모두 Builder Pattern을 적용하면서 location의 id를 0으로 초기화했습니다..

[동적계획법] Top-down과 Bottom-up

Top-down과 Bottom-up의 공통적인 특징 - 다음 상태를 구하기 위해, 이전 상태를 저장하고 재사용합니다. (Memoization) - 무엇을 어떻게 저장할지 정하는 것이 중요합니다. 만약, 2차원 배열이라고 한다면, x축과 y축, 배열에 저장되는 값 이렇게 3가지를 어떤 대상으로 정의할 것인지 파악해야 합니다. - 이를 위해 정확한 문제 해석과 반복문에서 배열의 인덱스에 어떤 값을 입력해야 하는지 정해야 합니다. 적용 순서 1. 상태 정의: DP배열의 index가 의미하는 것과 문제의 초기상태 정의 2. 점화식 구하기: 다음 상태를 나타내기 위한 표현식 3. 시간복잡도 계산 www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 1..

[자료구조] Union-find

Union-find - Disjoint Set을 표현할 때, 활용하는 알고리즘으로 트리를 이용합니다. - Disjoint Set이란 서로 중복되지 않는 부분 집합들로 이뤄진 원소들의 정보를 저장하는 자료구조로 서로 공통 원소가 없는 부분 집합들을 뜻합니다. - 해당 알고리즘은 기본적으로 3가지 연산을 이용합니다. 1. make-set(x) : '초기화' 메서드로 x를 유일한 원소로 갖는 집합(트리)를 생성합니다. 2. union(x, y) : x가 속한 집합과 y가 속한 집합을 합칩니다.(합집합) 3. find(x) : x가 속한 집합(트리)의 루트값을 반환합니다. www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m..

[그래프] 플로이드 와샬 알고리즘

플로이드 와샬 - '모든 정점'으로부터 다른 '모든 정점'까지 이동하는 최단 경로를 구하는 알고리즘 - 다익스트라와의 차이점은 특정한 하나의 정점이 아닌 '모든 정점'이라는 것입니다. - 해당 알고리즘은 기본적으로 '특정 노드를 거쳐가 다른 노드로 이동'이라는 특징이 있습니다. (k - i - j) - 핵심 아이디어는 '거쳐가는 정점'을 기준으로 최단 거리를 구하는 것! www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net public static void cal..

[그래프] 벨만-포드 알고리즘

벨만-포드 알고리즘 - 앞서 포스팅한 다익스트라와 유사한 최단경로 알고리즘입니다. - 다익스트라와의 차이점은 가중치가 음수가 포함된 상황에서도 적용 가능하다는 특징입니다. - 정점의 개수가 N이라면 시작 노드를 제외한 (N-1)회 반복문을 수행하여 최단 경로를 구할 수 있습니다. www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net public static void checkedTimeMachine() ..

[그래프] 다익스트라 알고리즘

다익스트라 - '최단 경로는 여러 개의 최단경로로 이루어졌다.' - 다이나믹 프로그래밍을 활용한 대표적인 최단 경로 탐색 알고리즘, 하나의 정점(Node)에서부터 다른 정점까지로 가는 최단 경로를 알 수 있습니다. (대신, 가중치가 음수인 경우 적용할 수 없습니다.) - 기본적으로 하나의 최단 경로를 구할 때, 이전까지 구한 최단 경로 정보를 그대로 활용한다는 특징이 있습니다. 다익스트라의 작동과정 1. 출발노드 선정 2. 출발노드를 기준으로 연결된 노드마다 최소 비용 저장 3. 방문하지 않은 노드 중 최소 비용의 노드 선택 4. 다른 노드로 이동할 경우, 최소 비용을 갱신하며 이동 5. 3~4번 반복 www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 ..

반응형