Apple is Apple

일일 회고

 

벌써 수요일! 시간이 빠르다 다음 주 금요일이면 마무리이다. 최종 발표 준비, 버그 수정 등 해야할 일이 많다.. 차근차근히 해보자


오늘의 키워드

  • 기술 면접 질답 작성

예외란 무엇일까요? try - catch - finally 는 각각 어떤 구문일까요?

프로그래밍을 하다 보면 코드가 제대로 작동하지 못하고 중단되는 현상이 발생할 수 있다. 이것 을 예외라고 한다.

여기서 잘 구분을 해야 하는 것이 Error(오류)와 Exception(예외)의 차이이다. 언뜻 보면 둘 다 프로그램을 중지 시키는 측면에서 비슷하다고 볼 수 있겠지만 의미를 들여다보면 각각이 가지고 있는 의미가 다르다.

Error는 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미한다. 개발자가 미리 예측하여 방지할 수 밖에 없다.

Exception은 개발자가 구현한 로직에서 발생한 실수나 사용자의 영향에 의해 발생한다. 오류와 달리 개발자가 미리 예측하여 방지할 수 있기에 상황에 맞는 예외 처리(Exception Handle)를 해야 한다.

Error의 상황을 미리 미연에 방지하기 위해서 Exception 상황을 만들 수 있으며, try-catch문으로 Exception handling(예외 처리)을 할 수 있다.

Exception에도 두 가지 종류의 Exception이 있다.

  1. Checked Exception : 예외 처리가 필수이며, 처리하지 않으면 컴파일 되지 않는다. JVM 외부와 통신(네트워크, 파일시스템 등)할 때 주로 쓰인다.
    • RuntimeException 이외에 있는 모든 예외
  2. Unchecked Exception : 컴파일 때 체크되지 않고, Runtime에 발생하는 Exception을 말한다.
    • RuntimeException 하위의 모든 예외

이러한 Exception이 발생할 수도 있어서 프로그램의 위험성이 증가하는데, 이때, 위험성을 줄이는 방법으로 try- catch- finally 구문을 통해 Exception handling(예외 처리)를 할 수 있다.

try: try구문에는 Exception이 발생할 수도 있는 위험성이 있는 로직을 작성한다.

catch: catch구문에는 try구문에서 Exception이 발생했을 때, 어떻게 처리할 지에 대한 로직을 작성한다. else if 처럼 여러개의 exception을 분기 처리 시켜 줄 수 있다.

finally: 예외 처리 발생 여부를 떠나 무조건 실행시키는 로직을 작성한다. 보통 try구문에서 네트워크, 파일 시스템등 리소스를 사용하는 구문을 많이 쓰게 되는데, finally에선 이 리소스를 해제하는 구문을 작성한다.

Retrofit이란 무엇인가요?

Retrofit은 안드로이드 앱에서 RESTful API와 통신할 때 사용되는 라이브러리 중 하나이다.

Retrofit은 Square Inc.에서 개발된 오픈 소스 라이브러리로, 안드로이드 앱 개발을 위한 RESTful API 호출을 간편하게 처리할 수 있다.

Retrofit은 앱에서 서버로 HTTP 요청을 보내고, 응답을 처리하며, JSON으로 직렬화하는 작업들을 자동화한다 (다양한 Converter를 지원해준다) . 또한, Retrofit은 OkHttp 라이브러리를 기본 HTTP 클라이언트로 사용하므로, 높은 성능과 안정성을 보장한다.

Retrofit은 앱에서 API를 호출할 때 필요한 여러 기능을 제공합니다.

예를 들어, Retrofit은 API URL 및 요청 파라미터를 구성하고, 요청 본문을 구성하고, API 응답을 파싱하는 등의 작업을 처리할 수 있다. 또한, Retrofit은 HTTP 요청 및 응답에 대한 콜백 인터페이스를 제공하여, 앱에서 비동기적으로 API 호출을 처리할 수 있다.

따라서 Retrofit을 사용하면, 안드로이드 앱에서 RESTful API 호출을 쉽게 처리할 수 있으며, 코드를 간결하게 유지할 수 있다.

retrofit의 장점

  • 빠르다 - AsyncTask보다 3~10배의 성능을 보여준다.
  • 가독성 - RESTful API 통신을 Annotation(애노테이션) 사용으로 코드의 가독성이 뛰어나다. 그래서 직관적인 코딩이 가능하다.
  • 비동기적인 API 호출 : Retrofit은 HTTP 요청 및 응답에 대한 콜백 인터페이스를 제공하여, 앱에서 비동기적으로 API 호출을 처리할 수 있다. 이를 통해 앱의 반응성을 유지하면서도 네트워크 통신을 처리할 수 있다
  • 간단한 유지 보수 - Retrofit은 서버 연동 시 주로 주고받는 데이터인 JSON, XML을 자동을 파싱해주는 Converter 연동을 지원해준다.
profile

Apple is Apple

@mjjjjjj