최종 팀프로젝트 TIL(15)

jxxn_a·2023년 10월 30일
1

팀프로젝트

목록 보기
33/33

🐱 With All My Animal 🐶

💡 [ 15일차 10/30일 ] 💡

📌 오늘의 기술면접 질문 Q&A

1) 클래스의 요건은 무엇일까요?

  • 클래스는 객체 지향 프로그래밍에서 중요한 개념으로, 객체를 생성하기 위한 틀 또는 설계도로 생각할 수 있다.

  • 클래스를 정의하는 것은 객체의 상태와 행동을 정의하는 것을 의미하며, 클래스를 통해 객체를 생성하는 과정을 인스턴스화라고 한다.

  • 클래스를 정의하는데 다음과 같은 조건이 있다.

    • 클래스 이름 : 각 클래스는 고유한 이름을 가져야한다. 이 이름은 해당 클래스의 인스턴스(즉, 객체)를 생성 할 때 사용된다.
    • 속성 : 클래스는 객체의 상태를 정의하는 속성을 포함해야한다. 예시) '자동차' 클래스의 속성에는 브랜드/ 색상/ 모델 등이 있을 수 있다.
    • 메소드 : 클래스는 객체의 행동을 정의하는 메소드를 포함해야한다. 예시) '자동차' 클래스의 메소드에는 달리기/ 멈추기/ 방향 전환하기 등이 있을 수 있다.
    • 생성자 : 클래스는 객체 생성 시 초기화를 위한 특별한 메소드인 생성자를 가질 수 있다. 생성자는 클래스 이름과 동일하며, 객체가 생성될 때 한 번만 호출된다.
    • 접근 제어자 : 클래스, 속성, 메소드는 접근 제어자를 가질 수 있다. 이는 해당 클래스, 속성, 메소드에 대한 접근권한을 제한한다. 예시) public, private, protected 등의 접근 제어자가 있다.

2) 안드로이드 service는 무엇인가요?

  • 백그라운드에서 오랫동안 실행되어야 하는 작업을 수행하기 위한 애플리케이션 컴포넌트이다.

  • 사용자 인터페이스를 제공하지 않으며, 대신 다른 애플리케이션 컴포넌트(Activity, 브로드캐스트 수신자 등)가 실행 중인 동안에도 백그라운드에서 작업을 계속 할 수 있게 해준다.

  • 애플리케이션의 실행을 넘어서 백그라운드에서 장기간 실행되는 작업을 수행하기 때문에, 자원 관리 측면에서 주의가 필요하다.

  • 불필요하게 서비스가 계속 실행되면 시스템의 성능을 저하시킬 수 있기 때문이다.

  • 서비스를 사용할 때는 해당 작업이 완료되었을 때 서비스를 종료하는 등의 관리가 필요하다.


⛹️ 시작된 서비스 (Started Service)

  • 애플리케이션 컴포넌트가 서비스를 시작하면, 서비스는 백그라운드에서 무한히 실행될 수있다.

  • 예시) 음악 재생 앱에서 음악을 재생하는 서비스는 사용자가 앱을 종료하더라도 계속해서 음악을 재생할 수 있다.


⛹️ 바운드 서비스 (Bound Service)

  • 다른 애플리케이션 컴포넌트가 서비스에 바인드하면, 바인드 된 컴포넌트와 상호작용하거나 통신할 수 있다.

  • 바운드 서비스는 일반적으로 IPC(Inter-Process Communication)를 수행하는데 사용된다.

  • 🔎 IPC : 서로 다른 프로세스 간에 데이터를 주고 받는 과정 혹은 그 방법을 의미한다.
    안드로이드에서는 Intent를 사용하여 애플리케이션 컴포넌트 간에 메세지를 전달하는 방식도 제공하고 있다. Intent를 통해 IPC를 수행할 수도 있다.


📌 중간발표 피드백 정리

YH 튜터님

  • 금액 숫자에 콤마 작업하기
  • 영어모드가 왜 필요한지 모르겠다.
  • 반려동물이 없어도 가입할 수 있으면 좋겠다.
  • 일지를 쓸 때마다 포인트가 있었으면 좋겠다.
    (프로반려인 등급 같은 게 있으면 좋을 것 같다!)

SJ 튜터님

  • 주제가 겹치는 조와 같이 결합해서 하나의 서비스를 만들어보면 좋을 것 같다. (콜라보)
  • 다크모드가 왜 있는지 모르겠다!
  • 타임라인 정리를 잘했다.
  • 한 사람이 만든 UI라고 생각이 들게 만들었다하고 시작했는데 그 점이 정말 중요하다.
  • 코드도 일관성있게 작업하는 것도 중요하다.
  • 변경점만 있는 업데이트(리스트 어댑터)할 수 있는 기능이 있다.

ES 매니저님

  • 전반적으로 완성도 높게하려고 준비하신 것같다.
  • 다른 사람들의 의견을 묻고 다닌 것도 정말 잘했다.
  • 기능이 정말 쓰이는 걸까? 하는 생각을 해봤으면 좋겠다.(필요한건지)
  • 발전이 많이 보였던 조였던 거 같다. (검색을 안했을 경우 Feed 어떻게 할지)

전체 피드백(다른 조 포함해서)

  • 로그인 기능이 굳이 많이 필요한가?
  • 머티리얼 가이드 읽어보기
  • UI/UX 다른 조 의견을 들어보는 것도 좋다. (서로 피드백 주기)
  • 앱 실행 시 로그인 및 회원가입창이 바로 뜨는 게 좋은건지?
    (마켓 앱은 홈 화면으로 바로 들어가게 됨)

📌 일부 화면 스크린샷 제한주기

window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
  • 이 kotlin 코드를 setContentView 전에만 넣어주면 완성!

참고한 블로그

2개의 댓글

comment-user-thumbnail
2023년 10월 30일

😹

1개의 답글