Programming/TIL
-
Spring과 Spring BootProgramming/TIL 2020. 11. 4. 20:37
Spring Spring은 우리가 원하는 프로그램을 만들기 위해 미리 만들어진 골격을 토대로 원하는 대로 살을 붙여 개발할 수 있도록 조력자의 역할을 하는 프레임워크이다. 위키백과에 따르면 기본적으로 Java 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. Spring 프레임워크는 인프라와 관련된 내용을 애플리케이션 레벨에서 설정하도록 해줌으로써 개발자가 코드로 대부분을 컨트롤할 수 있게 지원한다. 즉, 개발자가 코드 안에 애플리케이션 동작에 대한 내용을 기술하면 Spring 프레임워크가 이를 해석해서 동작하는 것이다. 의존성 주입(DI), 제어의 역전(IOC), 관점지향 프로그래밍(AOP)은 Spring의 중요하면서 강력한 특징이다..
-
OOP(Object Oriented Programming)Programming/TIL 2020. 11. 2. 21:47
OOP 언어 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술 Not use Getter&Setter 객체는 OOP 캡슐화의 특성에 따라 객체의 데이터를 외부에서 접근하지 못하게 하고, 함수를 통해서만 조작이 가능해야 한다. 접근 메서드와 수정 메서드는 내부 데이터와 구현을 노출시키므로 유지 보수에 악영향을 미치기 때문에 가능한 사용하지 않아야한다. 또한 객체 데이터가 언제 어디서 변화하는지 코드상으로 구분할 수 없어 차후 기능 변경시 복잡해질 수 있다. Getter&Setter로 어떠한 작업 수행에 필요한 정보를 요구하는 대신 정보를 가진 객체에 일을 해달라고 요청해라(명확히 목적과 의도를 나타낼 수 있는 메서드를 추가해서). velog.io/@cyranocoding/%EA%B0%9D%EC%B2..
-
디자인 패턴과 아키텍쳐Programming/TIL 2020. 3. 7. 16:45
"MVC패턴을 적용하였고 3tier 구조로 되어있는 프레임워크를 갖추고 있다"라는 기술설명서는 우리나라에서 흔하게 접해볼 수 있는 애플리케이션 설명문이다. 아마 이 MVC와 3Tier는 엔터프라이즈급 산업에서는 가장 많이 채택되고 있는 구조일 것이다. 사실, 배울때에는 2개의 개념이 비슷하게 와 닿았다. MVC로 설명하나 3Tier로 설명하나 같은 말 같은데, 굳이 왜 두개의 개념을 다 써주는 걸까? 응.. 그렇다.. 이유가 있다. 한번에 써주는 데는 두 개념이 소프트웨어를 정의하는 관점이 다르기 때문이다. Software Achitecture 위키피디아에 설명된 SW 아키텍쳐에 관한 설명을 보면, 청사진으로 비유해 두었다. 그만큼 SW 아키텍쳐는 프로그램에 있어 기초이자 근본이다. 그리고 설계단계에서 ..
-
프레임워크 vs 라이브러리Programming/TIL 2020. 2. 12. 21:21
자동차는 프레임워크, 망치는 라이브러리 자동차는 특정 목적으로 만들어져서 목적지로 빠르게 갈 수 있는 역할만 하지만, 망치는 두드린다는 행위 하나로 사람을 때릴때도 쓸 수 있고, 못질을 하거나 필요에 따라 사용할 수 있다. 자동차를 가지고 삽질을 할 수 없고 무언가를 두들길 수도 없다. 그저 목적지 까지 빠르게 데려다주는 수단일 뿐이다. 만들어질 때 부터 이러한 용도로 만들어졌기 때문이다. 즉 매뉴얼대로 조작하면 최대의 효율로 목적지까지 데려다 주는 것이 프레임워크이다. 하지만 망치는 용도에 따라 여러가지의 형태로 쓰일 수 있다. 프레임워크는 라이브러리와는 다르게 프로그래밍 규칙이 이미 정해져 있는 것이다. 말그대로 프레임워크는 골격, 라이브러리는 도구 프로그램을 만들기 위해 프레임워크를 토대로 골격에 ..
-
Domain Object, DAO, DTO,Programming/TIL 2020. 2. 12. 21:07
Domain Object 도메인 객체란 내가 개발하고자 하는 영역을 분석하고, 그 분석의 결과로 도출된 객체들을 말한다. 예를 들어, 쇼핑몰을 만든다고 했을 때 쇼핑몰의 주된 기능인 상품 구매에 사용되는 객체인 Member, Product, Purchase 등을 도메인 객체라고 할 수 있다. DAO(Data Access Object) DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체 DB에 대한 접근을 DAO를 통해서만 하도록 만들어 다수의 원격 호출을 통한 오버헤드와 호출 문제를 줄일 수 있다. DTO(Domain Transfer Object) 계층간 데이터 교환을 위한 객체. 일반적인 DTO는 로직을 갖고 있지 않다. 순수한 데이터 객체이며 속성과 그 속성에 접근하기 위한 set..
-
MVC 패턴과 Layerd ArchitectureProgramming/TIL 2020. 2. 12. 18:47
MVC 패턴이란? MVC는 Model View Controller의 약자이다. Model은 어플리케이션이 무엇을 할 것인지 정의하며 비즈니스 로직을 가지고 있다. - 처리되는 알고리즘, DB, 데이터 등 Contoller는 사용자로 부터 어떤 요청을 처리할지 모델에 알려주고, 처리한 데이터를 뷰가 화면에 출력할 수 있도록 전달하는 역할을 한다. View는 화면에서 입력을 받거나 Model로 부터 요청 처리된 결과를 출력하는 역할을 한다. MVC 디자인 패턴의 장점은 Model과 View를 분리함으로써 비즈니스 로직과 UI 요소를 분리해 서로 영향없이 개발하기 수월하다는 것이다. Layerd Architecture란? Layerd Architecture는 중복으로 개발되는 요소를 별도의 Service 객체..
-
-
[Interface] absract 클래스와 interfaceProgramming/TIL 2018. 10. 2. 01:27
추상 클래스와 인터페이스1. 추상화추상화는 중요한 특징을 찾아낸 후 간단하게 표현하는 것이다.필요한 부분, 중요한 부분을 통합하여 하나로 만드는 것을 말한다.예를 들어 {도형, 네 개의 변, 네 개의 각} 나열되어 있는 세 가지 요소를 일일히 언급하지 않고, '사각형'이라고 부르는 것이 추상화의 한 예라고 할 수 있다.추상화는 여러가지 요소들을 하나로 통합하는 방향성을 가지고 있다. (한 가지 문제를 여러가지로 쪼개서 나눠보는 '문제 분할'과 반대의 개념)추상화를 이용하여 핵심적인 것만을 남겨 표현하게 되면, 복잡한 내용도 한 눈에 알아볼 수 있어 이해하기 쉽다는 장점이 있다.Example그림과 같이 다른 종류의 트럭과 자동차가 있다. 색깔과 모양, 엔진 유형 및 용도가 다르므로 다른 느낌을 준다.그러나..