본문 바로가기

전체 글

(125)
[Android] 데이터 바인딩(DataBinding) 데이터 바인딩(DataBinding)이란? 안드로이드 스튜디오 개발자 사이트에서 정의한 표현을 인용하자면 다음과 같이 정의할 수 있습니다. 프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리 안드로이드에서 앱은 xml을 기반으로 하여 화면을 설계하고, Java나 Kotlin 소스 코드를 통해 필요한 로직을 구현하고 앱의 동작을 만들어낼 수 있습니다. 이와 관련하여 아래의 글을 참조하면 향후 이어지는 글에 대해 조금은 도움이 되실거 같습니다 😀 https://1-hee.tistory.com/86 따라서, 데이터 바인딩이 없더라도 자바나 코틀린 소스 코드에서 레이아웃을 참조하여 기능을 구현하고 값을 바꿀 수 있습니다. 그리고 이렇게 사용자..
[Android] 뷰 바인딩(ViewBinding) 뷰바인딩(ViewBinding)이란? 안드로이드 앱은 크게 화면의 구현과 배치를 담당하는 XML과 레이아웃을 참조하고 앱의 동작, 로직 등 필요론 하는 기능의 구현을 담당하는 Java/Kotlin 파일로 구성됩니다. 물론, 앱을 빌드하고 서명을 추가하는 gradle(or KTS(Kotlin DSL))도 있지만, 지금은 자세히 다루지 않겠습니다. 안드로이드 앱은 xml로 그려놓은 화면을 다양한 클래스들의 상호작용을 통하여 그려냅니다. 이 과정에는 정말 많은 클래스가 관여하며 이 부분은 앱 개발자가 신경 쓸 부분은 아닌지라, 아래의 포스트를 참조하여 어떻게 동작하는지 그림이라도 파악해두면 좋을 것 같습니다. https://velog.io/@ows3090/Android-findViewById-%EC%9B%90..
[TIP] 안드로이드 컴포즈 환경에서 토스 결제 API 사용하기 💡 본 포스팅은 안드로이드 프로젝트 內 Jetpack Compose를 사용하는 환경에서 XML 기반 액티비티로 결제 기능을 구현하였습니다. 즉, 컴포즈로 결제 기능을 직접 구현한 것은 아닙니다. 😀 개요 컴포즈 환경에서 앱 개발하던 중 앱 내 결제 기능이 필요해서 toss 의 api를 사용해서 결제 기능을 구현했습니다. https://docs.tosspayments.com/reference/widget-android 결제위젯 Android SDK | 토스페이먼츠 개발자센터 결제위젯 Android SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다. docs.tosspayments.com 이때, 컴포즈로 직접 컴포저블을 만들어서 대응하는 방법도 있겠지만, 일단 저는 초보(?)고 잘 모르겠어서 컴포저블과 ..
[TIPS] 안드로이드 컴포즈(Compose) 환경에서 local.properties 파일로 key 값 관리하기 with KTS https://developer.android.com/studio/build/migrate-to-kts?hl=ko Groovy에서 KTS로 빌드 구성 이전 | Android 개발자 | Android Developers Gradle 구성 파일을 Groovy에서 KTS로 이전합니다. developer.android.com 구글에서 위와 같이 기존 groovy(build.grale)에서 KTS로 빌드 구성을 이전했습니다. 2023년 8월 프로젝트를 처음 시작했기에, 자동으로 KTS로 빌드 파일이 구성되었는데, 이때는 몰랐습니다... 이로 인해 의존성 추가 하나 하는 것도 더 찾아보게 되었다는 것을..ㄷㄷ 안드로이드 앱 개발 시, 민감한 데이터의 경우 GitHub와 같은 원격 레포지토리에 올라가지 않게 관리할 ..
[CS BASIC] 미들웨어(Middle Ware) 솔루션 미들웨어 솔루션이란? 컴퓨터 제작 회사가 사용자의 특정한 요구대로 만들어 제공하는 프로그램으로, 운영 체제와 응용 소프트웨어의 중간에서 조정과 중개의 역할을 수행하는 소프트웨어 미들웨어 (Middleware)의 특징 서로 다른 기종 간의 하드웨어나 프로토콜, 통신환경 등을 연결하여 응용프로그램과 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다. 위치 투명성(Location Transparency)을 제공한다. 분산 시스템의 여러 컴포넌트가 요구하는 재사용가능한 서비스의 구현을 제공한다. 애플리케이션과 사용자 사이, 프로그램과 환경 간의 분산서비스를 제공한다. 표준화된 인터페이스를 ..
[CS BASIC] 시스템 인터페이스와 인터페이스 대상 식별 시스템 아키텍처 요구사항 하드웨어 소프트웨어를 모두 포함하는 전체 시스템에 대한 논리적 기능 체계 그리고 그것을 실현하기 위한 구성 방식, 시스템 전체의 최적화를 목표로 한다. 요구사항과 시스템의 전체 생명주기를 고려한다. 시스템의 구성, 동작 원리를 정확하게 표현해야 하며 각 컴포넌트에 대한 설계, 구현을 지원하는 수준으로 자세히 기술한다. 각 컴포넌트 사이의 상호작용, 외부 환경과의 관계를 기술한다. 시스템 인터페이스 식별 개발 대상과 시스템 연계 시스템 사이의 인터페이스를 식별하는 것이다. 시스템의 업무 정의서, 시스템 아키텍처 정의서, 유스케이스 정의서 등을 통하여 송신, 수신, 중계 시스템을 식별한다. 인터페이스 요구명세서, 인터페이스 요구사항 목록을 기반으로 개발 대상과 시스템과 연계된 내/외..
[CS BASIC] HTTP, HTTPS, HTTP Method 1. HTTP란? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜 1.1. 프로토콜(Protocol) 이란? 둘 이상의 통신개체간에 교환되는 메세지 포멧과 순서뿐 아니라, 메세지의 송수신과 이벤트에 따른 행동들을 정의한다. 여러 계층으로 나눠진 네트워크 구조에서 동일 계층에서 사용하는 표준화된 통신 규약으로,네트워크 기능을 효율적으로 발휘하기 위한 협정 1.1.1. 프로토콜의 주요기능 단편화와 재합성 캡슐화 주소지정, 순서지정, 흐름제어 연결제어, 오류제어, 동기화, 다중화 1.2. HTTP의 기본 구조 ① 시작 라인 (Start line) 기본적으로 HTTP 버젼에 대한 정보를 가지고 있으며, Response인지 Reques..
[CS BASIC] 디자인 패턴과 GoF(Gang of Four) 디자인 패턴(Design Pattern)이란? 각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 자주 사용하는 설계 형태를 정형화하여 유형별로 설계 템플릿을 만들어 두고 소프트웨어 개발 중 나타나는 과제를 해결하기 위한 방법 중 한 가지다. 다양한 응용 소프트웨어 시스템들을 개발할 때 서로 간에 공통되는 설계 문제가 존재하는 데, 각 해결책 사이에도 공통점이 있으며 이러한 유사점을 패턴이라 한다. 개발자 간 원활한 의사소통, 소프트웨어 구조 파악 용이, 설계 변경에 대한 유연한 대처, 개발의 효율성, 유지보수성, 운용성 등 소프트웨어 품질 향상에 도움을 준다. 객체 지향 프로그래밍 설계 시 유사한 상황에서..