목록분류 전체보기 (44)
개발자이야기
해당 내용에대한 질문을 받았다. 음.. 인증서를 발급받아 https를 적용하고 https는 암호화가 된다는것 정도는 알겠는데 구체적으로 왜 그래야 하는가를 잊었다.. 그래서 정리해보게 되었다. HTTP(HyperText Transfer Protocol) HTTP는 인터넷의 기초를 형성하는 TCP/IP 기반으로 만들어진 프로토콜 이며, HTTP는 텍스트, 이미지, 사운드, 비디오 등과 같은 데이터를 주고받을 수 있는 프로토콜 이다. 프로토콜이란? 프로토콜은 컴퓨터와 같은 서로 다른 엔티티 간의 정보 교환의 방식을 정의하는 규칙입니다. HTTP작동방식 HTTP 프로토콜은 웹서비스를 통해 클라이언트 장치와 서버 간에 리소스가 교환된다. 클라이언트는 웹 페이지를 로드하는데 필요한 리소스에 대한 요청을 서버에 보..
Viewpager PageTransFormer 이번 포스팅은 viewpager 애니메이션을 간단히 공유하려 했으나 허전한거 같아 Viewpager PageTransFormer에 대해 간단히 알아보려고 한다. 11번가 앱을 사용하는 중 11번가의 viewpager 롤링 애니메이션이 마음에 들어 구현해보게 되었다. 11번가 viewpager 롤링 애니메이션은 아래와 같다. 혹시 아래의 캡처화면이 문제가 된다면 삭제하도록 하겠습니다. 광고아님!! 예시이미지 입니다! Viewpager.PageTransFormer PageTransFormer는 무엇일까? PageTransformer는 페이지가 스크롤될 때마다 호출된다. 그리하여 페이지가 넘어갈때 애니메이션을 직접 커스텀할 수 있다. Android 3.0 이상에서..
가장 먼 노드 Java https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 풀이 최단 경로 알고리즘인 다익스트라 알고리즘을 사용했다. 각 노드의 최단경로로 인접 노드를 방문하며 cost를 구해 가장 큰 값을 가진 노드들을 카운트 하는 방법으로 해결했다. 우선순위큐를 사용하여 인접노드를 방문하기까지의 cost를 구했기 때문에 최단거리를 보장받을 수 있다. public static class Node implements Comparable { int index; int cost; Arr..
알고리즘 입국심사 https://programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 이분탐색 시간복잡도 O(logn) 주어진 n명의 사람이 주어진 times 배열의 시간을 활용하여 최단시간내에 입국심사를 받으면 되는 문제다. 해당 문제는 이분탐색 카테고리에 되어있다. 사실 이 카테고리 못봤으면 이분탐색으로 생각도 못했을거같다. 많이 풀어봐야겠다. 이분탐색의 기준은 시간기준으로 0 ~ times[가장큰값] * n 을 기준으로 탐색..
Adapter pattern 어댑터 패턴이란? 용도는 비슷하게 사용되지만 서로 다른 interface를 구현한다면 같이 사용할 수 없다. 이러한 호환성 문제를 해결하기 위해 어댑터 패턴을 이용한다. - 예시 우리는 모니터를 본체와 연결할때 dvi 케이블과 hdmi 케이블을 사용할 수 있다. 하지만 내 모니터는 hdmi만을 연결할 수 있고 나는 dvi 케이블만을 가지고있다. 이를 해결하기위해 dvi를 hdmi로 연결하기 위한 adapter가 필요하다. 코드를 한번 봅시다. DVI public interface Dvi { void insertDviSlot(); void printScreen(); } public class SamsungDvi implements Dvi { @Override public voi..
kotlin coroutine Android 어플리케이션은 Background Thread 를 만들어주지 않으면 Main Thread에서 모든일을 처리 한다는 것을 대부분 알고 계실 것 입니다. Main Thread는 이미 ui를 출력해주는 작업 만으로도 많은 일을 하고있는 셈 입니다. 만약 오랜 시간이 걸리는 작업을 Main Thread에서 처리한다면 ANR(Application Not Responding)을 만나게 될 것 입니다. 그래서 우리는 Main Thread의 부담을 덜어주기 위해 네트워크 작업, 시간이 오래 걸리는 작업 등을 Multi Thread 환경에서 작업합니다. 우리는 이러한 비동기 처리를 위해 android 에서 AsyncTask, RxJava를 사용하곤 했습니다. 코루틴이란? 코루..
android Jetpack Jetpack은 개발자가 고품질의 앱을 더 쉽게 작성할 수 있도록 도와주는 라이브러리 입니다. 단어에서부터 벌써 사용하면 날아갈거 같네요 AndroidX androidx네임스페이스 내의 아티팩트 는 Android Jetpack 라이브러리를 구성합니다 . SupportLibrary 와 마찬가지로 androidx네임스페이스의 라이브러리 는 Android 플랫폼과 별도로 제공되며 Android 릴리스 간에 이전 버전과의 호환성을 제공합니다. (공식문서 문구 인용) androidX는 더이상 지원되지 않는 SupportLibrary 개선된 버전입니다. 아니 그래서 AndroidX가 Jetpack 이라는 거야 뭐야? androidX와 Jetpack은 같은것이라 생각하면 됩니다. andr..
Java Thread Java Thread란? 우리는 하나의 프로세스를 작성하며 하나의 프로세스 내에 여러개의 스레드로 작업을 진행합니다. 특정 작업을 진행할때 많은 시간이 소요되는 작업이 존재하기 마련입니다. 이럴때 우린 sub thread 를 만들어 처리를 위임하고 main thread는 자기의 일을 이어서 진행 할 필요가 있습니다. Thread 장점 단일 프로세스 내에서 많은 동시 작업 가능 유지 보수 비용 절감 CPU 리소스를 효율적으로 사용 스레드는 시스템 리소스에 최소한의 영향을 미칩니다. 스레드는 기존 프로세스보다 생성, 유지 및 관리에 더 적은 오버헤드가 필요합니다. Thread 단점 복잡한 디버깅 및 테스트 프로세스 교착 상태 발생 가능성 증가 프로그램 작성 난이도 증가 예측할 수 없는 ..