개발 상식 🥕11 [면접을 위한 CS 전공지식 노트] 프로그래밍 패러다임 0. 프로그래밍 패러다임이란 ?프로그래머에게 프로그램을 어떻게 바라볼지에 대한 관점을 제공하는 개발 방법론 프로그래밍 패러다임은 크게 '선언형'과 '명령형'으로 나누며, 선언형은 함수형이라는 하위 집합을 갖는다. 또한 명령형은 다시 객체지향과 절차지향으로 나뉜다. 1. 선언형 프로그래밍과 함수형 프로그래밍선언형 프로그래밍(Declarative programming)이란 어떻게(How)보다는 무엇(What)을 수행할 것인지에 집중하는 프로그래밍 방식 함수형 프로그래밍의 개념과 특징자료 처리를 수학적 함수의 계산으로 취급하는 프로그래밍 패러다임 함수형 프로그래밍(Functional programming)은 선언형 패러다임의 일종으로, 작은 순수 함수들을 블록처럼 쌓아서 로직을 구현하고 고차 함수를 통해 재사.. 2024. 7. 5. [면접을 위한 CS 전공지식 노트] 디자인패턴의 종류 및 특징 1. 싱글톤 패턴 ⭐️ 싱글톤 패턴은 특정 클래스의 인스턴스를 1개만 생성되는 것을 보장하는 디자인 패턴이다. 쉽게 말하자면 메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법을 말한다. 사용자가 1초에 10번 똑같은 요청을 보내면 요청을 처리하기 위한 똑같은 객체를 1초에 10번 생성하고 소멸되는 메모리 낭비 문제가 발생하게 된다.하지만 싱글톤 패턴을 사용하면 최초 한번 new로 객체를 생성하고 해당 객체를 이후에도 사용하도록 다른 모듈들과 공유(static)하여 메모리 낭비 문제를 방지할 수 있다. 따라서 싱글톤 패턴을 사용하게 되면 불필요한 메모리 낭비를 방지할 수 있다. 보통 싱글톤 패턴이 적용된 객체가 필요한 경우는 그 객체가 .. 2024. 7. 2. [Spring] 스프링이란 ? 스프링이란 ? Java를 기반으로 사용하는 웹 프레임워크이다. 즉, Java로 다양한 어플리케이션을 만들기 위한 프로그래밍 툴이라고 할 수 있다. 스프링은 개발자가 아니라, 프레임워크에게 제어권을 가지고 있는 제어의 역전(IoC)과 코드의 재사용성을 높이고 모듈 간의 결합도를 낮출 수 있는 의존성 주입(DI)이라는 특징을 가지고 있다. 2023. 11. 27. [면접을 위한 CS 전공지식 노트] 1-2 프로그래밍 패러다임 프로그래밍 패러다임이란 ? 프로그래밍에 대한 관점을 나타내는 개발 방법론. 크게 '선언형'과 '명령형'으로 나뉜다. 1. 선언형 : 함수형 프로그래밍 함수형 프로그래밍은 선언형 프로그래밍의 일종으로, 순수 함수로 이루어져있고 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임 이다. - 순수 함수 : 외부의 상태를 변경하거나 영향을 받지 않으면서 동일한 인자에 대해 항상 똑같은 값을 리턴하는 함수 - 고차 함수 : 함수를 매개변수로 사용하거나, 함수를 반환하는 함수(일급 객체 ⭐️) - 일급 객체의 특징 : 1. 변수에 할당(assignment)할 수 있다 2. 다른 함수를 인자(argument)로 전달 받는다 3. 함수를 결과로 반환할 수 있다. 2. 객체지향 프로그래밍 객체지향 프로그래밍은 데이터를.. 2023. 11. 26. [면접을 위한 CS 전공지식 노트] 1-1 디자인 패턴 디자인 패턴이란 ? 특정 상황에서 공통적으로 발생하는 문제에 대한 재사용 가능한 해결책 1. 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴이란 하나의 클래스로 단 하나의 인스턴스만 만드는 디자인 패턴을 의미한다. 이를 통해 인스턴스를 생성하는 비용을 줄이고, 하나의 인스턴스를 다른 모듈들이 공유할 수 있다는 장점이 있다. 하지만, 모듈간의 결합을 강하게 만들어 및 의존성이 높아진다는 단점이 있다. 👉🏻 모듈간의 결합으로 인한 의존성 문제를 해결하기 위해 '의존성을 주입'하는 방법이 있다. 2. 팩토리 패턴(Factory Pattern) 팩토리 패턴이란 상속 관계에 있는 두 클래스에서, 중요한 뼈대를 상위 클래스가 결정하고 세부적인 내용을 하위 클래스가 결정하는 디자인 패턴을 의미한다. 이로 .. 2023. 11. 26. [Clean Code] 클린코드 이론 정리 1. 클린 코드(Clean Code)란 ? "Clean code does one thing well.” 클린 코드는 하나의 일을 잘 하는 코드이다. - Bjarne Stroustrup, inventor of ‘C++ “Clean code is simple and direct." 클린 코드는 간결하며, 직접적이다. - Grady Booch, author of ‘Object-Oriented Analysis and Design with Applications’ 저명한 개발자들이 정의한 클린코드란 단순하여 읽기 쉽고, 각 역할마다 주어진 하나의 일만 담당하며, 복잡하거나 모호하지 않은 코드입니다. 즉, 원하는 로직을 빠르게 찾을 수 있는 코드, 모든 팀원이 이해하기 쉽도록 작성된 '가독성'이 좋은 코드 입니다... 2023. 11. 20. 이전 1 2 다음