본문 바로가기

전체 글

(86)
[가볍게 읽는 CS] TCP vs UDP TCP/IP와 UDP는 통신의 가장 기본적인 요소이다.TCP(Transmission Control Protocol)는 데이터 손실이 없고 신뢰할 수 있는 통신이며,UDP(User Datagram Protocol)는 데이터 손실을 감수하면서 빠른 통신을 보장한다.이러한 차이는 TCP 통신이 신뢰할 수 있는 통신을 진행하기 위해 확인 단계를 거치고, 새롭게 통신할 때마다 데이터를 잘 수신했는지 확인하고, 수신하지 못한 경우에는 재전송하는 과정이 있기 때문이다. TCP와 UDP는 기술면접에서 면접자의 기본기를 확인하기에 적합한 기본적인 내용 중 하나라고 생각한다.그렇기 때문에, 지원 분야가 어디든 반드시 알고 있길 바란다. TCP와 UDP의 공통점1. 둘 다 전송 계층 프로토콜TCP와 UDP는 OSI 7계층과..
[영상처리] NV21과 YV12의 차이점 앞선 글에서 Bitmap과 YUV의 차이점을 알아보며, YUV 데이터가 실제로 사용되기 위해선 코덱이 지원하는 데이터 포맷으로 가공되어야한다는 점을 언급했다.보통 안드로이드의  CameraX Analysis가 방출하는 row데이터는 YUV420_888 Color format이다.안드로이드에서 이 데이터를 영상 프레임같은 곳에 사용하기 위해선 NV21이나 YV12데이터로 변환해 주어야한다.그럼 NV21은 뭐고, YV12은 뭘까? 이 둘의 차이점은 YUV데이터 중 색차 정보인 U와 V의 저장순서이다. 이미지로 보면 이렇다. NV21은 효율적인 메모리 접근이 가능하다. 위 이미지에서 확인 가능하듯, U와 V가 교차하여 존재하기 때문에 메모리 접근이 효율적이다.반면, YV12는 V와 U의 값이 별도의 평면에 배..
Bitmap과 YUV의 차이점 이번에 개인 사이드 프로젝트로 앱을 만들며, 이미지를 처리를 경험하게되었다.지금까지 Camera를 사용하면 무조건 Bitmap을 사용해 왔는데, 이번에는 YUV color format을 위주로 사용하게되어 많이 해맸었다.그래서 정보를 찾아보며 알게된 둘의 차이점과 공통점을 정리해 두려 한다. 차이점색상 표현 방식Bitmap은 RGB 색상 모델을 사용하여 각 픽셀의 Red, Green, Blue 값으로 색상을 표현한다.YUV는 휘도(Y)와 색차(U, V) 성분으로 색상을 표현하는 모델이다. Y는 밝기 정보를, U(색차 B-Y)와 V(색차 R-Y)는 색상 정보를 가지고 있다.대역폭 효율성RGB 모델은 각 픽셀마다 3개의 값(R, G, B)을 가지므로 대역폭 요구량이 크다. 그래서 리소스를 많이 소모한다.YU..
Kotlin 코딩테스트 기초 문법 정리 #1 현직 Android 개발자이기도하고 지향하는 커리어도 Kotlin fullStack이다 보니 Kotlin으로 코테를 준비하는게 맞다는 생각이 들었다.문제를 풀면서 필요했던 함수 혹은 알면 쓸만한 내용을 기록해두고자 한다.자료구조 관련 내용은 따로 작성하겠다.[내용 추가 진행 중입니다.....]1. 입출력기본 입출력readln(), readLine(), print(), println()fun main() { var name = readln() // 입력 var yourName = readLine() // 입력 print("my name: $name") // 일반 출력 println("my name: $name") // 출력 후 개행}readln()은 kotlin 1.6부터 도입된 입출..
정처기 필기 준비 팁(feat. 하루 준비) 본인이 잘났다고 작성하는 글 전혀 아닙니다.이런 저런 일에 치이다가, 혹은 깜빡하고 있다가 급하게 준비하게 된 전공자들을 대상으로 하는 글 입니다.(굳이 전공자가 아니라도, 객체지향 프로그래밍에 대한 이해가 있다면 쉬울 것 같습니다.) 강의? 들을 용기도 시간도 없음. 하루 전이라면 비추유튜브에 요약 강의가 있지만..  시험 하루 전인 금요일에 퇴근 후 6시간 가까운 분량의 강의를 들을 자신이 없었음본인의 선택이겠지만, 개인적으로 많은 내용을 얉게 훑는 시험이라 시간이 없을 때는 강의보단 벼락치기 암기가 답이라고 생각 기출 계속 돌리기일단 문제 유형이나 보려고 한번 풀어봤는데..다른 분들이 풀이를 너무 잘 작성해 둬서 그냥 해당 풀이들을 외우기로 함그렇게 다른 사람들이 요약해 둔 내용 위주로 읽으면서 ..
5월 4주차 회고 📚 배운 것ImageAnalysis를 사용하면 굳이 ImageCapture를 통해 캡쳐한 JPEG 데이터를 YUV420_888로 변환하는 하드 코딩을 안해도 됨을 알게되었다. -> ImageAnalysis는 기본적으로 모든 프레임을 YUV데이터로 분석하여 방출하기 때문그러므로 굳이 이미지를 영상 프레임으로 만드려고 할 때, 캡처 -> YUV 변환하지 말고 ImageAnalysis의 데이터를 캐치하는 방식으로 작성하는 것이 좋다.XML 기반의 RecyclerView Item의 가시성을 어떻게 처리해야하는지 보다 더 잘 알게되었다.일단 전부 Visible = ture 혹은 false로 초기화해준 후, 필요한 사항만 가시성을 제어해 주는 것이 item 변경 시 오류를 방지할 수 있는 점🧎 회고 이번 주에는..
[Android Tip] Spinner: DropDown(다른 글로 수정됨) DropDown Spinner아래의 이미지 처럼 터치했을 때, 값을 사용자가 선택할 수 있도록 목록 형태로 펼쳐지는 것을 드롭다운(Drowdown) 이라고 한다.안드로이드에서 드롭다운은 스피너(Spinner) 를 이용해 구현할 수 있다.이번 포스팅에서는 스피너를 구현하는 방법과 커스텀하는 방법에 대해 알아보겠다.ViewBinding 환경을 고려하고 작성된 글이다. 이번 글의 내용에서 만들어가는 드롭다운의 결과는 아래와 같다.간단하게 드롭다운에서 아이템을 선택하면 그에 따라 텍스트가 바뀌는 예제다. 코드 전문은 아래 깃허브 저장소에서 확인 가능하다.샘플 프로젝트 코드 링크 GitHub - parade621/Basic_Spinner: Tstory Basic Spinner DropDown 코드 전문Tstory..
[Kotlin] 반복문 최종 수정: 24.05.18 Kotlin에서 반복문을 통해 흐름을 제어(control flow)를 하는 방법에 대해서 알아보겠다.반복구문은 for과 forEach, while, repeat를 사용할 수 있다.for코틀린의 for문은, 아래와 같은 형태로 사용한다.집합 collection에 대해서 각각 요소를 Item으로 정의하고 식을 실행시키는 구조다.사실 for문은 모든 언어에서 사용되는 반복문인 만큼, 처음 코딩을 접하는 것이 아니라면 익숙한 개념이다.때문에, for문의 문법적인 내용을 다루기 보다는, 코틀린에서는 어떻게 반복 범위를 지정할 수 있는지를 다루는 것이 옳바른 방향이라고 생각된다.‣상행 반복 예제for (i in 0..5){ println(i)}---012345상향 반복에는 2개의 ..