목록Interview (5)
pat coding
디자인 패턴이란? - 반복적으로 일어나는 문제들을 어떻게 해결할 것인가에 대한 해결책들의 유사점을 모아놓은 패턴 - 프로젝트 규모가 커지고 협업 인원이 많아질수록 디자인 패턴은 일을 효율적으로 처리할 수 있게 해 줌 - 이미 만들어진 해결책이 있는데, 해결책을 다시 만들지 말아야 함! GoF의 디자인 패턴 1. 생성 패턴 객체 생성에 관련된 패턴 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공 Singleton - 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴 Abstract Factory - 구체적인 클래스를 지정하지 않고 관련성을 갖는 객체들의 집합을 생성하거나 ..
1. 스프링 프레임워크란? 자바 웹 애플리케이션 개발을 위한 오픈소스 프레임워크 2. 특징? 1. 의존성 주입(DI) - IOC Container 가 개발자 대신 xml 파일에 정의된 대로 Bean 객체를 생성하고 의존성을 대신 주입하는 것 2. 제어 역행(IOC) -서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법 -사용자가 작성한 메타데이터(xml 또는 @(어노테이션))에 따라 Bean 클래스를 생성 및 관리 하는 Spring의 핵심 컴포넌트 1. XML 파일 기술 - 코드와 의존성 주입하는 부분 분리해서 유지보수성을 높일 수 있다. - 시스템이 거대해지면 XML파일이 너무 많아서 오히려 유지보수가 어려워짐 2. @(어노테이션) 사용 - 직관적인 코드 작성 가능, 개..
루비와 레일즈관련 예상면접 질문! 1. MVC 패턴 작동 방식 Rails는 기본적으로 MVC(Model, View, Controller)패턴이란 디자인패턴을 사용한다. MVC패턴이란 클라이언트에서 요청을 컨트롤러가 받으면 모델을 통해 데이터를 가져오고, 그정보를 바탕으로 뷰를 통해 사용자에게 전달하는 것이다. 2. 변수 정의 Ruby의 변수형태는 4가지가 있다. - var 지역변수 : 특정 동작 내부에서만 사용, 인스턴스변수나 전역변수와는 다르게 초기화전 nil 값을 가지고 있지 않음 - @var 인스턴스변수 : 한 객체에서만 사용가능, 처음 값이 대입될 때 동적으로 객체에 추가됨 - @@var 클래스변수 : 해당 클래스 파일내에서 사용가능, 사용 전 반드시 초기화를 해야함 - $var 전역변수 : 어떤..
Spring AOP란? OOP를 대신하는 개념이아니라, OOP를 더욱 OOP스럽게 사용할 수 있도록 도와주는 개념이다. OOP의 한계를 극복하기 위한 패러다임이다. OOP는 객체를 재사용함으로 코드의 중복을 많이 줄일 수 있었지만, 그럼에도 반복되는 코드를 없앨수는 없다. 근데 AOP는 이러한 부분을 해결해준다. OOP에서는 공통적인 기능을 각 객체의 횡단으로 입력했다면, AOP는 공통적인 기능을 종단간으로 삽입할 수 있도록 한 것이다. OOP로직에서 각 객체별로 처리했던 것들을 각 관점별로 외부에서 접근하는 것이 AOP의 핵심이다. AOP의 가장 큰 특징이자 장점은 중복되는 코드 제거, 재활용성의 극대화, 변화수용의 용이성이 좋다는 점이다.
객체지향프로그래밍(OOP)이란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 특징 - 상속, 추상화, 캡슐화, 다형성 (상추캡다) 장점 - 코드 재사용 용이 (클래스를 가져올 수 있고, 상속을 통해 확장이 가능) - 유지보수가 쉬움 (변수나 메서드만 수정하면됨) - 대형 프로젝트에 적합 (클래스단위로 모듈화시켜서 여러명이 나눠서 개발할 수 있음) 단점 - 객체가 많으면 용량이 커짐 - 설계시 많은 시간과 노력이 필요 상속이란? 자식클래스가 상속받고 싶은 부모클래스를 선택해서 물려받는 것 기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것 추상화란..