함수 정의 def 함수 이름 (args...): def는 파이썬 예약어로서 함수를 정의한다. 함수 정의 방법#1 - 기본값을 가진 형식인수 def function (x=1, y=1): () 사이의 값은 함수의 형식인수 이다. 그리고 x,y는 기본값을 1로 정의한다. 그리고 함수의 호출은 function(1,5) 또는 function(y=12,x=5) 처럼 키워드를 주어 인수의 순서없이 입력이 가능하다. (키워드 인수호출) 함수 인수 함수의 인자로 가변형 인자를 받을 수 있다. 이때 가변형 인자를 튜플 또는 사전형 타입으로 정의할 수 있다. 함수의 인수#1 - 튜플형 인수 def function (*args): 함수의 인수#2 - 사전형 인수 def function (**args): 람다 표현식 lambd..
IF 문 if True: print("true"); else: print("false"); If 문은 다른 언어들과 마찬가지로 if 다음에 나오는 '조건'이 True 이거나 아닐경우 해당 블록으로 분기한다. 조건문은 bool 타입 뿐만아니라 다른 데이터 형식도 bool타입으로 변환하여 사용이 가능하다. if "true": print("true"); else: print("false"); if 1: print("true"); else: print("false"); =====result======= true true 또한 IF문을 표현식으로 바꾸어 사용할 수 있다. if "true": print("true"); else: print("false"); print("true") if "true" else pri..
Welcome to Python.org The official home of the Python Programming Language www.python.org 내장 데이터 타임 파이썬에서는 크게 4가지 내장 데이터 타입이 있다. 숫자 시퀀스 셋 매핑 숫자타입 정수 data = 10 print(data); print(type(data)) ----------------------------- 10 실수 data = 0.01 print(data); print(type(data)) ----------------------------- 0.01 복소수 data = 1+1j print(data); print(type(data)) ----------------------------- (1+1j) Boolean da..
견고한 node.js 프로젝트 설계하기 본 글은 Sam Quinn의 “Bulletproof node.js project architecture” 글을 번역한 것입니다. [Bulletproof node.js project architecture 🛡️ Express.js is great frameworks f velog.io
왜 React와 서버 사이드 렌더링인가? 홈쇼핑처럼 4번째 상품인 튀김을 기름에 튀기면서 React를 적용하느라 고생했던 순간이 떠올라 React와 서버 사이드 렌더링 적용과정을 정리해봅니다. 여기서는 어떻게보다는 왜에 대해 설명합니� subicura.com Ajax 등장 부터 React 까지 잘 정리되어 있는 글.
아마 이게 제일 이해하기 쉬울걸요? React + Redux 플로우의 이해 https://qiita.com/mpyw/items/a816c6380219b1d5a3bf?utm_campaign=popular_items&utm_medium=feed&utm_source=popular_items 를 번역한 문서입니다. medium.com
Flyweight 패턴 Flyweight 패턴은 비용이 큰 자원을 공통으로 사용할 때, 그 비용을 최소화 하기위해 사용하는 패턴입니다. 자원에 대한 비용이 클 때라 함은, 객체의 생성 빈도가 높을 경우(중복 생성) 또는 객체의 생성 비용이 클 경우 입니다. 즉, Flyweight 패턴은 인스턴스를 공유를 최대한 하며, 객체의 중복생성을 방지하는 것. 간단한 예제 Flyweight 패턴으로 간단한 예제를 작성해 봅니다. 예제의 다이어그램은 아래와 같습니다. 설명 Toy : 장난감의 정보(제조 방법 등등..)을 정의 Car, Train, Cook : 자동차, 기차, 요리 장난감의 제조정보 등등의 각각의 기능정의 ToyShop : Flyweight패턴에서 인스턴스의 공유를 담당하는 역할을 하는 클래스 Toy ..
템플릿/골백의 동작원리 템플릿은 고정된 작업흐름을 가진 코드를 재사용한다는 의미에서 붙인 이름이다. 콜백은 템플릿 안에서 호출되는 것을 목적으로 만들어진 오브젝트이다. 템플릿/콜백의 특징 여러 개의 메소드를 가진 일반적인 인터페이스를 사용할 수 있는 전략 패턴의 전략과 달리 템플릿/콜백 패턴의 콜백은 보통 단일 메소드 인터페이스를 사용한다. 콜백은 일반적으로 하나의 메소드를 가진 인터페이스를 구현한 익명 내부 클래스로 만들어진다고 보면 된다. 콜백의 재활용 템플릿/콜백 방식은 템플릿에 담긴 코드를 여기저기서 반복적으로 사용하는 원시적인 방법에 비해 많은 장점이 있다. 콜백의 분리와 재활용 콜백 메소드의 단점은 익명 내부 클래스를 사용하기 때문에 상대적으로 코드를 작성하고 읽기가 조금 불편하다. *고정되 ..
스프링은 다양한 방법을 통해 DI 의존관계 설정정보를 만들 수 있다. 가장 대표적인 것이 XML이다. XML은 단순한 텍스트 파일이기 때문에 다루기 쉽다. 또 쉽게 이해할수 있으며 컴파일과 같은 별도의 빌드 작업이 없다. 또한 환경이 달라져서 오브젝트의 관계가 바뀌는 경우에도 빠르게 변경사항을 반영, 스키마나 DTD를 이ㅛㅇ해서 정해진 포맷을 따라 작성됐는지 확인도 가능하다. 사용법 XML 파일은 를 루트 엘리먼트로 사용. XML 설정은 @Configuration을 . @Bean을 에 대응하여 생각한다.
IoC는 소프트웨어에서 자주 발견 할 수 있는 일반적인 개념이다. 객체지향적인 설계나, 디자인 패턴, 컨테이너에서 동작하는 서버 기술을 사용한다면 자연스럽게 IoC를 적용하거나 그 원리로 동작하는 기술을 사용하게 될 것이다. DaoFactory처럼 객체를 생성하고 관계를 맺어주는 등의 작업을 담당하는 기능을 일반화 한 것이 스프링의 IoC 컨테이너이다. 의존관계주입은 스프링 IoC기능의 대표적인 동작원리이다. IoC 컨테이너 == DI 컨테이너 의존관계 의존관계란? 두개의 클래스, 모듈이 존재할 때 의존관계에 있다고 말 할 때는 항상 방향성을 부여해 줘야 한다. 의존한다는 건 의존대상에 영향을 끼치는 것이다. 의존관계 주입의 세가지 충족 조건 1. 클래스 모델이나 코드에는 런타임 시점의 의존관계가 드러나..
스프링의 어플리케이션 컨텍스트는 IoC컨테이너라고 하기도 하고, 간단히 스프링 컨테이너라고 부르기도 한다. 또는 빈팩토리 어플리케이션 컨택스트를 사용했을 때 장점 1. 클라이언트는 구체적인 팩토리 클래스를 알 필요가 없다. 어플리케이션이 거대해지면 여러가지 Factory가 추가 될 것이고 클라이언트가 필요한 오브젝트를 가져오려면 어떤 팩토리 클래스를 사용해야 하는지 알아야 하고, 필요할 때마다 오브젝트를 생성해야 하는 번거로움이 있다. 2.어플리케이션 컨텍스트는 종합 IoC 서비스를 제공한다. 단지 오브젝트의 생성, 관계설정 뿐만아니라, 만들어지는 방식, 시점, 전략을 다양하게 가져갈 수 있고, 부가적으로 자동생성, 후처리, 조합,설정방식의 다변화, 인터셉팅 등 오브젝트를 효과적으로 사용할 수 있다. 3..
제어의 역전이란? 간단히 프로그램의 제어 흐름 구조가 뒤바뀌는 것이다. 일반적으로 프로그램의 흐름은 main() 메소드와 같이 프로그램이 시작되는 지점에서 다음에 사용할 오브젝트를 결정하고, 결정한 오브젝트를 생성하고, 만들어진 오브젝트에 있는 메소드를 호출하고, 그 오브젝트 메소드 안에서 다음에 사용할 것을 결정하고 호출하는 식의 작업이 반복된다. 제어의 역전에서는 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않는다. 당연히 생성하지도 않는다. 또 자신도 어떻게 만들어지고 어디서 사용되는지를 알 수 없다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하기 때문이다. 모든 제어 권한은 제어 권한을 갖는 특별한 오브젝트에 의해 결정되고 만들어진다. 팩토리 객체의 생성 방법을 결정하고 그렇게 만들..