본문 바로가기
반응형

Java5

[알고리즘/Java]다이나믹 프로그래밍(Dynamic Programming) 다이나믹 프로그래밍(Dynamic Programming)은 Divide and Conquer(분할정복) 기법과 같이 문제를 작은 부분 문제로 나누어 그 해를 결합해 문제를 해결하는 것이다. 어떤 문제를 점화식으로 표현할 수 있다면, 대부분 Dynamic Programming을 사용하여 문제를 해결할 수 있다. 다이나믹 프로그래밍(Dynamic Programming) 다이나믹 프로그래밍과 분할정복 먼저 분할정복(Divide and Conquer)과 다이나믹 프로그래밍의 차이점을 알아보자. 분할정복의 경우 분할 문제들이 서로 겹치지 않는다. 각각의 다른 부분 문제를 해결하고 그 결과를 결합하는 것이다. 다이나믹 프로그래밍은 부분 문제가 각각의 부분 문제를 가진다. 즉, 다이나믹 프로그래밍은 문제를 다음과 같.. 2023. 6. 4.
[Spring Framework]관심사의 분리 -② Spring으로 개발하기 이제 본격적으로 Spring Framework로 개발을 시작해보려 합니다. Spring 없이 개발을 했을 때와 마찬가지로, 자동차와 운전자라는 예제를 가지고 코드를 짜보겠습니다. Spring Framework를 이용해 관심사의 분리를 구현하는 방법은 두 가지가 있습니다. 한 가지는 Java Annotation 방식이고요. 한 가지는 xml 방식입니다. 두 가지 방식을 모두 살펴보도록 하겠습니다. Spring으로 관심사의 분리 구현하기 Java Annotataion 방식으로 구현하기 스프링으로 관심사의 분리 구현을 하는 첫 번째 방식은 바로 Java Annotation을 이용한 방식입니다. 이전 포스팅에서 구현했던 자동차라는 인터페이스와 SuperCar, SuvCar라는 구현 객체, 운전자라는 구현객체가 .. 2023. 2. 11.
[Spring Framework]IoC와 DI 컨테이너 개념정리 스프링을 공부하다 보면, IoC 컨테이너와 DI 컨테이너라는 단어에 대해서 자주 듣게 됩니다. IoC 컨테이너와 DI 컨테이너가 의미하는 바가 상당히 유사합니다. 그만큼 혼용해서 쓰는 사람들도 많습니다. 그래서 이 개념들이 나태는 것이 정확히 무엇인지 한 번 짚고 넘어가고자 합니다. 추상적인 개념이 구체적으로 바뀌어 정리되는 게 바로 공부의 묘미죠. 그럼 한 번 정리해 보겠습니다. IoC와 DI 컨테이너 개념정리 제어의 역전(IoC : Inversion of Control) IoC(Inversion of Control)은 문자 그대로 제어의 역전이란 뜻입니다. 앞서 스프링 없이 좋은 객체지향 프로그래밍을 할 때, AppConfig라는 클래스가 등장했습니다. 이 AppConfig라는 클래스가 바로 제어가 .. 2023. 2. 5.
[Spring Framework]스프링과 객체지향 객체지향 프로그래밍(Object-Oriented Programming)이란? 앞서 스프링의 핵심 개념이 좋은 객체지향 프로그래밍(Object-Oriented Programming)을 도와주는 프레임워크라고 했는데요. 그렇다면 객체지향이란 무엇일까요? 객체지향 프로그래밍의 정의를 위키에서 찾아보면 다음과 같습니다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체지향 프로그래밍을 공부할 때 가장 많이 듣는 이야기는 "이 세상의 모든 개념은 객체화 할 수 있다." 였습니다. 개념을 객체화 할 수 있다는게 좀 모호한 말인데요. 조금 단순하게.. 2023. 1. 8.
반응형