Developing Myself Everyday
변수 캡슐화하기 (Encapsulate Variable)
Android/Kotlin 2023. 5. 12. 17:39

변수 캡슐화란? 변수 캡슐화는 객체 지향 프로그래밍에서 중요한 원칙 중 하나이다. 이는 클래스의 맴버 변수를 외부에서 직접 접근하는 것이 아니라, 해당 변수에 대한 접근을 제한하고 메서드를 통해 간접적으로 변수에 접근하는 것을 말한다. 변수 캡슐화를 하면 다음과 같은 이점이 생긴다. 정보 은닉: 변수를 private로 선언할 수 있어 클래스 내부의 데이터를 보호하고, 외부에 불필요한 세부 구현을 감춘다. 접근 제어: getter와 setter 메서드를 통해 변수에 접근하므로, 변수에 대한 유효성 검사, 제한된 접근 권한 설정 등을 수행할 수 있다. 유연성과 유지보수성: 변수에 대한 의존성을 제한하여 클래스 내부의 구현 변경에 유연하게 대처할 수 있으며, 코드의 유지보수성을 향상시킨다. 설명만 듣고선 알기..

REST API, Retrofit
Android/Kotlin 2023. 5. 1. 17:46

요즘 들어 개인 프로젝트를 진행한다고 블로그를 작성하는 것에 소홀했었다. 안드로이드 개발을 한다고 하면 반드시 마주치게 되는 것이 바로 REST API와 Retrofit이다. 안드로이드 스튜디오 자체에서 다 해결할 수 있다면 사용하지 않을 수 도 있겠지만 앵간하면 분명 위의 2가지와 마주치게 될 것이다. 좋은 개발자가 되기 위해서는 관련 개념에 대한 깊은 이해가 필요하기에 이 게시글을 통해 이해를 하고 넘어가고자 한다. REST API REST API는 REpresentational State Transfer API의 약자로 HTTP 프로토콜을 사용해서 클라이언트와 서버 간 통신을 위한 아키텍처를 정의하는 웹 서비스 디자인 패턴이다. HTTP & HTTPS HTTP(HyperText Transfer Pr..

REST API에서 HATEOAS란?
Android/Kotlin 2023. 5. 1. 17:16

HATEOAS란? HATEOAS(Hypermedia as th engine of application state)는 클라이언트가 API에서 제공되는 자원 간 관계를 탐색하고 이를 통해 애플리케이션 상태를 변경할 수 있는 기능을 제공한다. 만약 REST API에서 HATEOAS를 적용하지 않은 응답 예시를 들어보면, 클라이언트가 서버에스 응답받은 리소스의 URI를 기반으로 클라이언트가 가능한 동작을 수행하기 어렵다는 것이다. 이를 예를 들어 설명해 보겠다. 다음과 같은 REST API가 있다고 가정해 보겠다. GET /users/1​ 위의 API를 호출하면 서버는 클라이언트에게 원하는 유저의 정보를 반환할 수 있다. 그 응답은 아래와 같다. { "id": 1, "name": "John Smith", "em..

article thumbnail
[Android Studio] 네이버 SENS로 SMS 인증 기능 Retrofit 구현하기 with kotlin (2)
Android 2023. 4. 5. 19:51

Retrofit Interface 작성 이제부터는 API를 사용하기 위한 Retrofit Interface를 작성하겠다. Retrofit에 대한 이해가 없다면 Retrofit에 대해 공부를 하고 다시 돌아오는 것이 좋을 수 있다. 당장 따라서 구현하는 것은 할 수 있겠지만 앞으로 수도없이 사용할 것이기에 Retrofit에 대해 완벽하게 이해를 하는 것이 좋다. SMS API api.ncloud-docs.com API 통신을 하기 위해서는 위의 문서를 반드시 참고하여야 한다. Retrofit와 Rest API에 대한 지식이 충분하다면 위의 문서만으로도 충분히 구현할 수 있다. Retrofit을 사용하기 위해서는 가장 먼저 인터페이스를 통해 API 요청을 정의해야 한다. HTTP 메서드(GET, POST, ..

article thumbnail
[Android Studio] 네이버 SENS로 SMS 인증 기능 Retrofit 구현하기 with kotlin (1)
Android 2023. 4. 5. 19:07

나는 현재 개인 프로젝트를 진행하고 있다. 그 중에서, 지금은 회원가입 기능을 구현하고 있다. 회원가입을 할 때 우리가 항상 하는 것이 바로 SMS 인증이다. 국내에는 현재 무료로 이용할 수 있는 SMS 인증을 지원하는 API가 여러가지 존재한다. 나는 간단하게 핸드폰으로 6자리 랜덤 문자를 보내고 인증을 받을 수 있는 기능을 구현하고 싶어 여러가지 API들을 찾아보았다. 그런데 생각보다 관련 정보가 많이 없어서 이 블로그를 통해 나와 같은 고민이 있는 사람에게 도움이 되었으면 좋겠다는 생각에 글을 작성한다. 나는 직접적으로 SMS 인증을 지원하는 API를 사용하지 않고 간단하게 구현을 하려고 하였다. 그래서 SMS를 보낼 수 있는 API인 네이버 SENS를 사용해서 SMS 인증 기능을 구현하였다. 시작..

Retrofit 이란?
Android/Kotlin 2023. 4. 3. 14:46

Retrofit 이란? Retrofit은 Square에서 개발한 안드로이드 및 Java용 HTTP 클라이언트 라이브러리이다. RESTful API와 통신하기 위해 사용된다. Retrofit은 OkHttp 라이브러리와 함께 작동하여 간편하게 HTTP 요청을 만들고 응답을 처리할 수 있다. Retrofit은 간단하게 인터페이스를 정의하고, 이를 기반으로 HTTP 요청 및 응답 처리를 자동으로 생성할 수 있다. Retrofit Annotation (어노테이션) Retrofit의 핵심 개념 중 하나는 어노테이션을 사용하여 인터페이스 메서드를 HTTP 요청으로 매핑하는 것이다. 예를 들어, @GET, @POST, @PUT, @DELETE와 같은 어노테이션을 사용하여 HTTP 메서드를 지정하고, @Path, @Qu..

article thumbnail
아키텍처 패턴 - MVC Pattern, MVP Pattern with Kotlin
Android/아키텍처 패턴 2023. 3. 22. 14:00

우리가 소프트웨어 개발자가 되기 위해선 소프트웨어 디자인 패턴에 대한 이해가 필요하다. 그렇기 때문에 많은 기업에서 소프트웨어 디자인 패턴에 대한 이해가 있거나 직접 설계, 적용해본 경험이 있는 사람을 원하고 있다. 아키텍처 패턴을 적용해야 하는 이유 시행착오를 줄여 개발 시간을 단축 시키고, 고품질의 소프트웨어를 생산할 수 있습니다. 검증된 구조로 개발하기 때문에 안정적인 개발이 가능합니다. 이해관계자들이 공통된 아키텍처를 공유할 수 있어 의사소통이 간편해집니다. 시스템의 구조를 이해하는 것이 쉬워 개발에 참여하지 않은 사람도 손쉽게 유지보수를 수행할 수 있습니다. 시스템의 특성을 개발 전에 예측하는 것이 가능해집니다. MVC (Model - View - Controller) MVC Pattern은 가..