on my way

CS 스터디 01-1 전산기초: 개발 상식 본문

Computer Science

CS 스터디 01-1 전산기초: 개발 상식

wingbeat 2024. 9. 3. 21:46
반응형

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main

 

GitHub - JaeYeopHan/Interview_Question_for_Beginner: :boy: Technical-Interview guidelines written for those who started studying

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - GitHub - JaeYeopHan/Interview_Question_for_Beginner: :boy:...

github.com

 

좋은 코드란 무엇인가?

 

좋은 코드란 여러 기준이 있겠지만, 기본적으로 읽기 쉽고 이해하기 쉬운 코드를 의미합니다. 코드의 가독성은 협업 시 다른 개발자가 이해하고 유지보수할 수 있도록 하는 중요한 요소입니다. 또한 중복이 없는 코드는 유지보수의 용이성을 높이며, 테스트가 용이한 코드는 코드의 신뢰성을 보장합니다. 좋은 코드는 단순히 동작하는 코드가 아닌, 장기적인 유지보수와 확장을 고려한 코드입니다.

 

마치 책을 읽듯이 쉽게 이해할 수 있고, 여러 번 쓰지 않아도 되며, 고치기 쉽게 만들어진 코드가 좋은 코드예요. 예를 들어, 친구가 만든 레고를 보면 설명서를 보지 않아도 어떻게 만들었는지 알 수 있는 것처럼요.


객체 지향 프로그래밍이란 무엇인가?

객체 지향 프로그래밍(OOP)은 현실 세계를 프로그래밍으로 모델링하는 방법론입니다. OOP에서는 현실 세계의 사물을 객체로 보고, 이 객체들이 메시지를 주고받으며 협력하는 방식으로 프로그램을 구성합니다. 이를 통해 코드의 재사용성을 높이고, 유지보수 및 확장이 용이한 구조를 만듭니다. 또한 SRP, OCP, LSP 등의 설계 원칙을 따름으로써 코드의 유연성과 안정성을 확보할 수 있습니다.

 

예를 들어, 우리가 게임을 만든다고 하면, '자동차'라는 객체를 만들어 그 자동차가 달리고, 멈추고, 경적을 울리는 것처럼 실제 세계처럼 행동하게 하는 거예요. 이렇게 하면, 여러 자동차를 쉽게 만들 수 있고, 자동차가 고장 났을 때(버그가 생겼을 때) 고치기도 쉬워요.


RESTFul API란?

RESTful API는 웹에서 자원을 정의하고 다루는 아키텍처입니다. REST는 REpresentational State Transfer의 약자로, 자원을 URI로 식별하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 자원을 처리합니다. RESTful API는 클라이언트와 서버 간의 통신을 명확하게 규정하며, 플랫폼 독립적이고, 확장성이 뛰어나며, 멀티플랫폼 지원에 유리합니다.

 

쉽게 말해 RESTful API는 컴퓨터들이 서로 대화할 수 있도록 정해진 규칙을 따라 통신하는 방법이에요. 예를 들어, 친구와 비밀 메시지를 주고받을 때 'A는 오세요, B는 가세요' 같은 규칙을 만들었다고 생각해보세요. 컴퓨터도 비슷하게, 정보를 주고받을 때 정해진 규칙을 사용해 통신해요. RESTful API는 웹사이트들이 서로 대화할 때 이 규칙을 따르도록 한 것이에요.


TDD란 무엇이며 어떠한 장점이 있는가?

TDD(Test-Driven Development)는 테스트를 먼저 작성하고, 그 테스트를 통과하는 최소한의 코드를 작성한 후, 리팩토링을 통해 코드를 개선하는 개발 방식입니다. TDD의 장점은 코드의 품질을 보장하고, 버그를 사전에 방지할 수 있으며, 리팩토링 시 기존 기능의 안정성을 유지할 수 있다는 점입니다. 또한 TDD는 개발자가 요구사항을 명확히 이해하고, 코드의 설계를 지속적으로 개선할 수 있도록 도와줍니다.

 

예를 들어, 우리가 로봇을 만들 때, 로봇이 넘어지지 않도록 먼저 테스트를 만들어 본 다음, 로봇을 조립하는 것처럼요. 이렇게 하면, 로봇을 만들면서 자꾸 테스트해볼 수 있어 나중에 문제가 생기지 않게 도와줘요.


함수형 프로그래밍이란?

함수형 프로그래밍은 함수를 일급 객체로 다루고, 상태를 변경하지 않는 불변 데이터 구조를 사용하는 프로그래밍 패러다임입니다. 이는 명령형 프로그래밍과 달리, 상태 변경 없이 순수 함수들로 이루어진 코드를 작성하는 방식입니다. 함수형 프로그래밍은 코드의 예측 가능성을 높이고, 병렬 처리와 같은 상황에서 안정적인 코드를 작성할 수 있게 합니다.

 

쉽게 말해 함수형 프로그래밍은 컴퓨터 프로그램을 만들 때, 수학 문제를 풀듯이 함수라는 도구를 사용하는 방법이에요. 함수를 사용하면, 입력이 항상 같은 출력(답)을 만들어내요. 예를 들어, 2 더하기 3은 항상 5가 되듯이요. 이렇게 하면, 프로그램이 예측 가능하고, 여러 명이 같이 작업할 때도 문제가 덜 생겨요.


MVC 패턴이란 무엇인가?

MVC 패턴은 Model-View-Controller의 약자로, 소프트웨어를 세 가지 주요 구성 요소로 분리하는 설계 패턴입니다. Model은 데이터와 비즈니스 로직을 관리하고, View는 사용자 인터페이스를 담당하며, Controller는 사용자 입력을 처리하고 모델과 뷰를 중재합니다. MVC 패턴은 코드의 재사용성을 높이고, 유지보수성을 개선하며, 개발의 효율성을 높이는 데 유리합니다.

 

쉽게 말해 MVC 패턴은 큰 프로그램을 세 부분으로 나누어 만드는 방법이에요. 예를 들어, 게임을 만든다면, 캐릭터의 행동을 담당하는 부분(Model), 화면에 캐릭터를 보여주는 부분(View), 그리고 이 둘을 연결해주는 부분(Controller)으로 나누는 거예요. 이렇게 나누면, 각각의 부분을 쉽게 고칠 수 있고, 다른 부분에 영향을 주지 않아서 편리해요.


Git과 GitHub에 대해서

Git은 버전 관리 시스템으로, 소스 코드의 변경 이력을 관리하고, 여러 개발자가 협업할 수 있도록 돕는 도구입니다. Git은 분산형 버전 관리 시스템으로, 로컬과 원격 저장소에서 각각 버전을 관리할 수 있습니다. GitHub는 Git을 기반으로 하는 협업 플랫폼으로, 프로젝트를 공유하고 협업할 수 있는 다양한 기능을 제공합니다. 이를 통해 개발자들은 효율적인 협업오픈 소스 기여가 가능해집니다.

반응형