개요 양심고백으로 글을 시작해보겠습니다. 저는 지금까지 "복잡한 데이터 = Room, 키-값 단순 데이터 = SharedPreference" 라는 1차원적인 사고방식을 가지고 개발해왔습니다. 그러나 Pixionary를 개발하던 중 의구심이 생기게 되었습니다. '단순한
Tokenization 이란? 딥러닝의 자연어 처리 분야에서는 문자열 입력을 기반으로 추론을 하게 됩니다. 따라서 모든 딥러닝 추론이 그렇듯 문자열 입력 역시 vector화 시켜서 모델에 입력해야 하고 일종의 byte sequence인 문자열을 일련의 알고리즘에 따라
Domain layer 정리 지금까지 1~3편을 통해 아무런 아키텍처도 적용되지 않은 앱에 MVVM을 한스푼 넣어줬는데요, 먼저 UI를 두 가지 클래스로 분리하여 역할을 나눴고 (UI layer), UI가 동작하기 위해 필요한 복잡한 비즈니스 로직을 ViewModel
비즈니스 로직은 어떻게 해야 할까 2편에서 화면 UI는 세 가지 구성요소로 나눌 수 있고 이 들중 UI 라이프사이클에 영향받지 않아야 하는 구성요소를 ViewModel로 분리해야 한다고 했습니다. 따라서 Observer나 StateFlow 자료구조를 활용하여 화면 상
MVVM 아키텍처를 구현하기 위해 Android AAC에서는 ViewModel이라는 클래스를 제공하고 있습니다. 이를 활용하면 매우 쉽게 MVVM 아키텍처를 안드로이드에서 구현할 수 있습니다. 명백히 MVVM 아키텍처의 ViewModel과 Android AAC가 제공하
안녕하세요 이번에 제가 Beering 이라는 프로젝트 팀에 중도합류하게 되어 리팩토링을 진행하게 되었습니다. 처음부터 개발하는 것이 아니라 기존에 개발하던 팀에 합류하여 리팩토링을 진행하는것은 저도 처음 해보는 경험이기 때문에 그 과정을 기록해보고자 이번 시리즈를 기획
MySQL을 설치하기 위한 삽질과정과 알게된점을 정리한 글입니다.아! 저는 킹갓 제네럴 엠페러 국산 SAMSUNG 노트북을 쓰기 때문에 Windows 환경입니다. Mac이나 Linux 환경은 저도 잘 모릅니다 ^~^서버 공부를 한번 해보려고 배달의 민족 ERD를 짠다음
졸업 프로젝트를 진행하면서 멀티모달 모델을 안드로이드 기기에서 돌려야 했습니다. 일단 제가 쓰는 모델은 vision 모델 하나와 nlp 모델 하나 이렇게 두 가지인데 vision모델을 사용하기 위해서는 이미지 전처리 과정을 거쳐야겠죠? 사실 파이썬에서는 numpy, t
본 글은 Android developers' Jetpack Compose 공식문서를 참고하여 작성되었습니다.
본 글은 Android developers' Jetpack Compose 공식문서를 참고하여 작성되었습니다.만약 이미 View xml을 활용해서 프로젝트를 진행중에 있다면 Compose를 도입할 수 없는것일까요?Jetpack Compose는 뷰 상호운영성을 고려하여 설
사용자가 컴퓨터를 사용하면서 하나의 작업만 수행하지는 않을 것입니다. 아니 사용자가 작업을 수행하지 않더라도 컴퓨터 백그라운드에서 돌아가는 응용프로그램들이 다수 있을 것입니다. 따라서 컴퓨터에서는 여러 응용프로그램이 병렬적으로 실행되어야 하며 운영체제는 이를 지원하기
본 글은 Android developers' Jetpack Compose 공식문서를 참고하여 작성되었습니다.먼저 Compose에 대해 논하기 전에 Jetpack에 대해 알아야 합니다. 우리가 안드로이드 개발을 한다는 것은 보편적으로 Android OS 내에서 동작하는
문제 상황 예시 먼저 이 알고리즘을 알게된 문제부터 소개하겠습니다. https://www.acmicpc.net/problem/2631 이렇게 생긴 문제인데, DP 문제로 분류되어 있어서 메모이제이션에 집중을 하고 생각해 봤는데, 진짜진짜 도저히 생각이 안나서 힌트만
이 글은 운영체제 공룡책을 읽고 정리한 내용입니다. 하드웨어에 대하여 CPU 스케줄링을 통해 성능향상을 이끌어내려면 많은 프로세스를 메모리에 유지하여 메모리를 공유하도록 해야합니다. 메인 메모리는 CPU가 직접 접근할 수 있는 유일한 범용 저장장치 이므로 모든 실행
이 글은 운영체제 공룡책을 읽고 정리한 내용입니다.운영체제는 응용프로그램이 동작할 수 있도록 자원을 관리하고 환경을 제공해줍니다. 즉 CPU활동을 관리한다고 볼 수 있는데 이러한 CPU활동을 무엇이라 부를까요?응용프로그램들을 모두 메인메모리에 올릴 수 없으므로 하드디스
운영체제는 컴퓨터가 동작할 수 있는 환경을 제공해주는 SW 라고 볼 수 있습니다. 컴퓨터 자체는 물리적인 HW이기 때문에 운영체제라는 SW를 탑재해야만 다양한 응용프로그램들이 동작할 수 있습니다.말 그대로 compute + er 계산기 인데, 정보를 처리하기 위한 장치
DP문제인지 그래프 문제인지 헷갈렸던 문제https://www.acmicpc.net/problem/1890이런식으로 그래프가 주어지는데, 각 칸에는 이동할 때 건너뛰는 거리가 주어진다. 즉 이동의 규칙이(0,0) 좌표에서 시작하는데 무조건 오른쪽 혹은 아래쪽으
방법만 알면 의외로 깔끔하게 풀리는 DP 문제이다.https://www.acmicpc.net/problem/1106목표 고객수를 달성하기 위해 0명부터 순차적으로 고객 수를 달성하기 위해 홍보에 필요한 최소 비용을 저장해 나가는 바텀업 방식이 적합하다 생각했고
versioning guidehttps://github.com/onnx/onnx-tensorflow/blob/main/Versioning.md 위 readme를 참고해서 버전을 맞추었습니다.onnx가장 최신버전을 사용하는게 좋아보이는데, 제가 모델을 개발한 t
pth -> onnx -> pb -> tflite 순서로 변환을 하였다.pth -> onnx 과정은 매우 순조로웠다. torch에 내장된 torch.onnx.export 함수에 내가 사용할 onnx 버전에 맞는 opset_version 변수만 잘 넣어줘서 변환에 성공했