전체 글 (97) 썸네일형 리스트형 23. MVC1이랑 MVC2의 패턴 차이에 대해 설명해주세요. MVC 패턴이란 소프트웨어 공학에서 사용하는 디자인 패턴 중 하나로 Model, View, Controller의 앞 글자를 따서 만든 디자인 패턴입니다. Model : 애플리케이션의 정보, 데이터, DB 등을 말함 View : 사용자의 요청을 화면으로 출력, 모델로부터 정보를 얻고 표시 Controller : 사용자의 요청을 처리하고 그 요청에 따른 전체적인 흐름을 제어 MVC 모델 1 MVC1 은 View, Controller의 역할을 합쳐서 만들어져 있습니다 흔히 웹 개발을 하면 jsp가 View 역할을 하면서 Controller 역할도 합니다. JSP 하나에 MVC가 모두 이루어져 재사용성이 매우 떨어지고 읽기도 힘들어져 유지보수에 문제가 발생됩니다. 장점으로 상대적으로 설계가 간단하여 개발 속도가.. 22. 스프링 DI에 대해 아는 대로 말씀해 주세요. 22. 스프링 DI에 대해 아는 대로 말씀해 주세요 외부에서 두 객체 간의 관계를 결정해 주는 디자인 패턴으로 인터페이스르 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해 줍니다. 장점 객체 간의 결합도, 의존성이 줄어듭니다. DI로 의존 관계를 분리하게 되면 주입받는 대상이 수정되어도 그 구현을 수정할 필요가 없어지므로 줄어듭니다. 코드의 재활용성이 높아집니다. Unit Test가 용이해집니다. DI로 구현하면 A의 테이스트를 B 테스트와 분리하여 진행할 수 있게 됩니다. 가독성이 높아집니다. 주입 방법 생성자 주입 @Controller public class Controller{ private Servic.. 21. 스프링에서 AOP가 뭔가요? 21. 스프링에서 AOP가 뭔가요? 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하는 관점 지향 프로그램입니다. 소스 코드상에서 다른 부분에 계속해서 쓰는 코드를 흩어진 관심사라 부릅니다. 흩어진 관심사를 Aspect로 모듈 화하고 핵시적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지입니다. 개념 Aspect 흩어진 관심사를 모듈화 한 것으로 주로 부가 기능을 모듈화함 Target Aspect를 적용하는 곳으로 클래스, 메서드 등을 말함 Advice 실질적으로 어떤 일을 해야 할 지에 대한 것으로 실질적인 부가기능을 담은 구현체 Join Point Advice가 적용될 위치 혹은 끼어들 수 있는 시점, 메서드 진입 시점, 생성자 호.. 20. 스프링의 MVC에 대해 설명하세요 MVC 란 MVC 패턴은 애플리케이션을 개발할 때 사용하는 디자인 패턴입니다. 애플리케이션의 개발 영역을 MVC(Model, View, Controller)로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식입니다. Model Model은 데이터 관리 및 비즈니스 로직을 처리하는 부분입니다. @Service를 통해 스프링 컨테이너에 등록된 객체는 Model에 해당됩니다. View 비즈니스 로직의 처리 결과를 통해 사용자 인터페이스가 표현되는 구간입니다. Model을 통해 전달받은 데이터가 어떤 데이터인지 상관하지 않습니다. html, jsp 등 화면을 구성하기도 하고 Rest API서버가 구현된다면 json 응답으로 구성됩니다. Controller Model, View를 연결해 주는 역할을 합니다. 사.. 19. 다형성에 대해서 설명해 보세요. 19. 다형성에 대해서 설명해 보세요. 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미합니다. 자바에서는 이러한 다형성을 부모 클래스 타임의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 구현하고 있습니다. 장점 유지보수가 쉽다. 개발자가 여러 객체를 하나의 타입으로 관리 가능하기 때문에 코드 관리가 편리해 유지보수가 용이합니다. 재사용성 증가 다형성을 활용하면 객체를 재사용하기 쉬워지기 때문에 개발자의 코들 재사용성이 높아집니다. 느슨한 결합 다형성을 활용하면 클래스 간의 의존성이 줄어들며 확장성인 높고 결합도가 낮아져 안전성이 높아집니다. 필수 조건 상속관계 다형성을 활용하기 위해서는 필수로 부모-자식 클래스 상속이 이루어져야 합니다. 오버라이딩 필수 다형성이 보장되기 위해서는.. 18. interface랑 abstract를 비교해서 설명해 주세요. 18. interface랑 abstract를 비교해서 설명해 주세요 추상 클래스(abstract) 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스입니다. 미완성 설계도라 표현하며 상속을 위한 클래스이므로 따로 객체를 생성할 수 없습니다. 추상 메서드 : 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 코드 abstract class 클래스명 { public abstract void 메서드명(); } 추상 클래스 특징 추상 클래스는 인스턴스(객체)를 만들 수 없는 클래스입니다. 추상 메서드는 하위 클래스에서 메서드의 구현을 강제합니다. 추상 메서드를 포함하는 클래스는 반드시 추상 클래스입니다. 상속하는 집합 간에 연관관계가 있습니다. 다중 상속이 불가능합니다. 인터페이.. 17. JVM이 하는 역할이 무엇인가요? 17. JVM이 하는 역할이 무엇인가요? 자바 가상 머신(Java Virtudl Machine)의 약자를 딴 용어입니다. 운영체제에 맞게 해석해 주는 역할을 합니다. 중요성 동일한 기능을 하는 프로그램이더라도 메모리 관리에 따라 성능이 좌우될 수 있습니다. 한정된 메모리를 효율적으로 사용하여 최고의 성능을 끌어낼 수 있습니다. 특징 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환 스택 기반의 가상머신 메모리 관리와 GC(가비지 컬렉션)을 수행 ※ GC : Garbage collection 약어로 불필요한 메모리를 알아서 정리해줍니다. 스택 기반 VM 장점 코드 작성과 컴파일이 쉽다. 속도는 레지스터 기반 VM보다 느리지만 명령어의 크기가 작음 대다수의 가상머신이 스택 기반 VM을 채용 하드웨.. 16. 상속과 컴포지션(합성)의 차이에 대해서 설명해보세요 16. 상속과 컴포지션(합성)의 차이에 대해서 설명해 보세요 상속 ls-a 관계 부모 클래스에 중복 로직을 구현해 두고 이를 자식 클래스에서 코드를 재사용하는 방법입니다. 엄밀히 말하면 상속은 그저 코드 재사용을 위한 기법은 아닙니다. 일반적인 클래스가 이미 구현이 되어 있는 상태에서 그보다 좀 더 구체적인 클래스를 구현하기 위해 사용되는 기법이며 그로 인해 상위 클래스의 코드를 하위 클래스가 재사용할 수 있을 뿐입니다. 명확한 is-a 관계에 있는 경우, 상위 클래스가 확장할 목적으로 설계되었다고 문서화도 잘되어 있는 경우 사용하면 좋습니다. 상속은 수평이 아닌 수직 관계입니다. //부모클래스 public class NoteBook{ String strOn = "전원을 킨다."; public void .. 이전 1 2 3 4 5 6 7 ··· 13 다음