본문 바로가기

분류 전체보기

(55)
[DB] 데이터베이스 설계를 하기 위해 중요한 6가지 안녕하세요! 메로나입니다.오늘은 데이터베이스 설계를 하기 위해 꼭 알아야 하는 6가지를 공부해 보려고 합니다. 데이터베이스 설계를 왜 하는가?데이터베이스 설계는 데이터를 중복하지 않고 저장하기 위해 필요한 작업이며, 효율적으로 데이터를 관리하기 위함입니다. 첫 번째로 체크할 것한칸에는 한 가지 정보만 담아라, 제1 정규형콤마로 데이터를 구분하지 마라FK(외래키)를 잘 사용해라두 번째로 체크할 것어떤 테이블에 FK를 넣어도 "규칙1"을 못 지킬 때에는 중간 테이블을 생성하라중간 테이블에 FK를 각각 테이블에서 가져온다.세 번째로 체크할 것헷갈릴 땐 관계(1:1, 1:N, N:M)을 파악하라예시) 가게와 가게상품하나의 가게는 ___판매 상품을 판다.하나의 가게는 여러 개의 판매 상품을 판다.하나의 판매 상품..
[Flutter] 서버와 통신하는 방법 안녕하세요! 메로나입니다. 오늘은 Flutter 개발 중인데 서버와 통신이 필요해서 공부하려고 합니다.개발 방법은 사람마다 다르지만, 제가 적용한 방법을 말씀드리려고 합니다. 클린 아키텍처Presentation Layer사용자 인터페이스를 담당하며, 사용자와의 상호작용을 처리합니다.Application LayerUI와 도메인 계층 사이의 중재자로서, 사용자 입력을 처리하고, 도메인 계층의 로직을 호출합니다.Domain Layer비즈니스 로직과 규칙을 포함하며, 애플리케이션의 핵심 기능을 정의합니다.Data Layer외부 데이터 소스와의 상호작용을 처리합니다.구성 요소API: Dio 객체를 통해 서버와 통신하여 데이터를 요청하고 응답받았습니다.(Dio는 라이브러리로 서버와 통신할 수 있게 도와줍니다.)Re..
[IT] 공인 IP와 사설 IP 안녕하세요! 메로나입니다. 오늘은 공인 IP와 사설 IP에 대해 공부하겠습니다. IP주소란?인터넷에 연결된 각 장치를 식별하는 고유한 숫자 주소입니다.IP 주소는 크게 공인 IP와 사설 IP로 나뉩니다. 공인 IP인터넷 서비스 제공업체가 할당하며, 전 세계에서 유일한 주소입니다. 인터넷상에서 직접 통신이 가능하며, 외부에서 접근할 수 있습니다.할당 주체: ISP(인터넷 서비스 제공업체)고유성: 전 세계에서 유일접근성: 외부에서 직접 접근 가능사용 예시: 웹서버, 이메일 서버 사설 IP로컬 네트워크 내에서 사용되며, 인터넷 상에서 직접 통신이 불가능합니다. 라우터나 공유기가 내부 장치에 할당하며, 외부와의 통신을 위해서는 NAT를 통해 공인 IP로 변환합니다.할당 주체: 라우터, 공유기고유성:로컬 네트워크..
[Android] ImageView의 scaleType 속성 안녕하세요! 메로나입니다. 오늘은 ImageView에서 scaleType이 있는데 해당 Type 속성에 관해 공부하겠습니다. ScaleType 정의center: 이미지를 원본 크기로 중앙에 배치하며, 이미지가 ImageView보다 클 경우 초과 부분이 잘립니다.centerCrop: 이미지를 ImageView에 맞게 확대하여 중앙에 배치하며, 이미지의 일부가 잘릴 수 있습니다.centerInside: 이미지를 ImageView 내부에 맞게 축소하여 중앙에 배치하며, 이미지가 잘리지 않습니다.fitCenter: 이미지를 ImageView의 중앙에 맞게 축소 또는 확대하여 배치하며, 이미지가 잘리지 않습니다.fitStart: 이미지를 ImageView의 좌측 상단에 맞게 축소 또는 확대하여 배치합니다.fitE..
[Android] NDK(Native Development Kit) 안녕하세요. 메로나입니다. 오늘은 Android와 Flutter를 공부하면서 NDK가 종종 나오는데 왜 쓰이는지 공부하겠습니다. NDK란?C와 C++ 언어를 사용하여 Android 애플리케이션의 일부를 구현할 수 있도록 지원하는 도구 모음개발자는 성능이 중요한 컴퓨팅 작업을 최적화하거나, 기존의 C/C++ 라이브러리를 재사용할 수 있습니다.NDK의 주요 구성 요소해더 파일: Android API에 대한 헤더 파일을 제공합니다.빌드 도구: ndk-build와 Gradle을 사용하여 네이트브 라이브러리를 컴파일합니다.디버깅 도구: LLDB와 디버거를 제공합니다.샘플 코드: NDK 활용 예제를 제공합니다.NDK를 사용하는 일반적인 흐름프로젝트 생성: Android 스튜디오에서 새로운 프로젝트를 생성합니다.ND..
[Android] Context 안녕하세요. 메로나입니다. 오늘은 안드로이드 개발을 하면서 제일 많이 사용하지만 왜 필요한지 알고 싶은 Context를 공부하겠습니다. Context안드로이드에서 Context는 애플리케이션 환경에 대한 정보를 제공하는 인터페이스입니다.리소스에 접근하거나 브로드캐스트를 보내거나 서비스 등을 시작할 수 있습니다.Application Context애플리케이션의 전역 Context를 반환합니다.애플리케이션의 수명 주기와 함께하며, 액티비티나 다른 UI 요소의 수명 주기와는 독립적입니다.UI와 관련되지 않은 작업이나 장기적인 프로세스에 적합합니다.레이아웃을 인플레이트하거나 다이얼로그를 표시하는 등 UI와 관련된 작업에는 부적절합니다.Activity Context프래그먼트에서 호출해당 프래그먼트를 호스팅 하는 액..
[IT] 비대칭키(공개키)와 대칭키 안녕하세요. 메로나입니다. 오늘은 공개키와 비공개키에 대해 공부하겠습니다. 안드로이드 개발자인데 APK를 만들고 APK 파일을 우리 회사가 만들었다는 것을 알려주는 방법 중 하나가 Signing을 하는 방법이더라고요. 지금까지는 Signing을 왜 하는지 궁금해서 저번에 공부를 했는데 이번에는 하는 방법에 대해 공부를 하면서 공개 키와 비공개 키를 알게 되어서 공부를 해보겠습니다. 비대칭키(공개키) 공개키와 개인키를 만듭니다.개인키는 B가 가지고 있고, 공개키는 A와 공유합니다.(말 그대로 공유키는 공유하는 키고, 개인키는 나만 알고 있으면 됨)A는 B가 제공해준 공개키를 받아옵니다.A는 B가 준 공개키로 암호화를 진행 후 암호화한 파일을 B에게 줍니다.B는 개인키와 공유키로 해당 파일을 복호화하여 볼 ..
[Android] AOSP(Android Open Source Project) 안녕하세요. 메로나입니다. 오늘은 AOSP를 공부하겠습니다. AOSP(Android Open Source Project)란?구글이 개발한 안드로이드 운영체제의 오픈 소스 버전누구나 안드로이드 소스 코드를 다운로드하고, 수정하고, 커스텀 버전을 만들 수 있음AOSP 목적안드로이드 운영체제의 개방성 유지OEM(제조사) 및 개발자들이 자유롭게 안드로이드를 수정할 수 있도록 제공스마트폰, 태블릿, 스마트 TV 등 다양한 디바이스에서 활용 가능AOSP의 주요 구성 요소Linux Kernel안드로이드는 리눅스 커널을 기반으로 동작커널은 디바이스 드라이버, 메모리 관리, 프로세스 관리 등의 기능을 수행Native LibrariesBionic libc: 안드로이드의 표준 C 라이브러리SQLite: 데이터베이스 저장용W..