본문 바로가기

TIL

[TIL]2024-4-02 / 62일차 - 최종 프로젝트 5주차 2일차

 

오늘의 알고리즘 코트카타는 오전에 밀린 기술면접 문제를 푸느라 패스했다.

 

1. 오늘의 기술 면접 - 스택, 힙 메모리란 무엇이며 어떤 차이가 있는지 비교해서 설명해주세요.

스택 메모리는 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 메모리로
함수의 호출과 함께 할당되고 완료와 함께 소멸합니다.
스택 영역은 푸시로 저장, 팝으로 데이터를 내보내는
후입 선출의 방식에 따라 작동하여 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다.

장점은 힙에 비해 빠르고, 함수에 종료에 따라 소멸되므로 별다른 관리가 필요 없다.

힙 영역은 사용자에 의해 메모리 공간이 동적 할당 해제되는 영역으로
런 타임에 사용하는 메모리가 들어가게 됩니다.
스택과는 반대로 낮은 주소에서 높은 주소의 방향으로 할당됩니다.

런 타임에 사용하는 메모리인 만큼 할당과 해제의 타이밍을 정적으로 알 수 없어
스택과 달리 메모리 관리를 위해 직접 힙 영역을 관리해주어야 한다는 필요성이 있습니다.

 

  1. 객체지향이란 무엇인지 설명해주세요.
    1. (꼬리질문) 객체지향의 특징은 무엇이 있나요?
    2. (꼬리질문) OOP란?
    3. (꼬리질문) SOLID 원칙은 무엇인가요?

 

OOP = Object-Oriented Programming = 객체 지향 프로그래밍

= 프로그램 방법론 중 하나로 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고
객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법

즉 값을 저장하는 변수와 작업을 하는 메소드 등을 서로 연관된 것들끼리 묶어서 만든 객체를 독립적인 부품으로서
만들어 객체들의 유기적인 조합으로 프로그램을 만드는 방법

특징
= 추상화, 상속, 다형성, 캡슐화
가 있으며

추상화
는 객체의 공통 속성과 기능을 정의하여 묶어 설계하는 것
<<추상화를 하는 이유 = 공통적인 특징이 있는 것을 만들 때 추가와 유지 보수가 쉽기 때문>>
<<ex = 자동차라는 인터페이스와 그 밑에 소형차 중형차 등의 세부적인 클래스 등>>

상속
은 기존의 클래스를 부모 클래스로 자식 클래스에 기능을 물려주거나 자식 클래스에서 해당 기능만 재정의
하여 사용하는 등의 것을 말합니다. 즉 새로운 클래스가 기존 클래스의 기능을 이용하는 것.
<<장점 = 코드 재사용으로 내용과 오버로딩이 줄어들고 새로 추가와 유지보수가 편리하고 클래스 간 관계 파악이 쉽다.>>
<<ex = 자동차의 기능, 예를 들면 공통되는 주행기능을 차마다 매번 작성하는 것이 아닌 상속으로 물려주고 달라지는
부분을 작성하거나 오버라이딩 할 수 있다.>>

다형성
은 하나의 기능, 변수명 등이 상황에 따라 다른 의미로 해석되는 것
오버라이딩과 오버로딩으로 주로 나타나는데
오버라이딩은 자식에서 부모클래스의 메서드를 재정의 하는 것
오버로딩은 같은 이름의 함수가 매개변수에 따라 다른 기능을 하는 것

캡슐화
의 경우 연관있는 기능 등의 것들끼리 하나의 캡슐로 만들어 데이터를 외부로 보호하는 개념으로
서로 관련 있는 데이터를 처리할 수 있는 기능들과 한 곳에 모아 관리하는데
이는 객체 재활용이 원할한 까닭도 있지만
데이터를 외부로부터 보호하고 내부의 동작을 감추고 필요한 부분만 노출하는 데이터 은닉을 위해서
사용하게 됩니다.
접근 제한자 혹은 get, set을 활용하는 것이 대표적

객체 지향적 설계를 위해
SOLID = 솔리드
라는 다섯가지 원칙이 있는데
단일 책임 원칙 = 
하나의 클래스는 하나의 책임
개방 폐쇄 원칙 = 
기능 확장은 열고 변경은 닫기
리스코프 치환 원칙 = 
상위 객체가 하위 인스턴스로 바뀌어도 정상 작동 해야함
인터페이스 분리 원칙 = 
인터페이스는 인터페이스를 사용하는 클라이언트를 기준으로 분리
의존관계 역전 원칙 = 
추상화에 의존하고 구체화에 의존하면 안된다.

 

 


 

2. 오늘의 작업

 

 

오늘은 허전하던 탈출구를 개선하기 위해 스프라이트 및 애니메이션 작업을 했다.

문에서 감시하는 카메라 역할을 하는 눈동자가 귀엽게 돌아가는 것이 포인트이다.

 

또한 열쇠를 다 모아 문이 열리게 될 경우

 

 

문이 열리고 잠금장치가 초록색으로 변하면서 튕겨나가는 연출을 넣어보았다.