본문 바로가기

프로그래밍

Java 8 함수형 인터페이스와 람다 표현식 함수형 인터페이스 (Functional Interface) ● 추상 메소드를 딱 하나만 가지고 있는 인터페이스 ● SAM (Single Abstract Method) 인터페이스 ● @FuncationInterface 애노테이션을 가지고 있는 인터페이스 람다 표현식 (Lambda Expressions) ● 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다. ● 코드를 줄일 수 있다. ● 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있다. 자바에서 함수형 프로그래밍 ● 함수를 First class object로 사용할 수 있다. ● 순수 함수 (Pure function) - 사이드 이팩트가 없다. (함수 밖에 있는 값을 변경하지 않는다.) - 상태가 없다. (함수 밖에 있는 값을 사용.. 더보기
EAI, ESB 시스템 개념 EAI(Enterprise Application Integration)는 기업 내 필요한 각종 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션이다. 자사에서 사용하고 있는 EAI 솔루션은 Software AG사의 WebMethods Integration 플랫폼을 사용하고 있다. 각 시스템들은 타 시스템과 연결이 필요할 때 EAI를 통하도록 해야 한다. 이로인해 중앙 집중화된 시스템 관리가 가능하고, 여러 시스템의 인터페이스를 표준화 할 수 있다. EAI 개념을 정리 하자면 기업과 기업 내부의 다양한 시스템과 애플리케이션을 통합하며, 다양한 애플리케이션간의 관계와 비즈니스 프로세스의 근간을 이루는 트랜잭션 네트워크를 관리해주는 개념이다. ESB(Enterprise Service Bus)는 SOA를.. 더보기
[MacOS] Homebrew, nodejs 설치 방법 Homebrew 설치 및 사용법 Homebrew란? MacOS 패키지 관리 프로그램이며 터미널 명령어로 프로그램 설치, 업데이트, 삭제를 간편하게 할 수 있습니다. Homebrew 설치 방법 brew.sh/ 사이트 접속 Install Homebrew 아래에 있는 명령어 복사하여 MacOS 터미널에 붙여 넣기 후 엔터 (설치 완료) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 명령어 brew list : 설치되어 있는 패키지 목록 조회 brew update : 설치 전 최신 버전으로 Homebrew 패키지 업데이트 brew install [패키지명] : 해당 패키지 설치 bre.. 더보기
[nodejs] 네이버 단축 URL API 사용하기 네이버 API에서 제공하는 단축 URL을 생성하는 간단한 Nodejs 소스입니다. 단축 링크로 변경할 URL Parameter를 전송하면 "me2.do/abcdefg" 형태로 단축 링크가 생성되어 반환됩니다. 쉽게 테스트 할 수 있도록 웹페이지에 텍스트 입력창을 사용하여 URL 전송 및 결과를 확인합니다. 다양한 예제 및 튜토리얼은 아래 네이버 개발자 페이지에서 확인할 수 있습니다. developers.naver.com/docs/utils/shortenurl/ 단축 URL API 적용 가이드 단축 URL API는 원본 URL을 `http://me2.do/example`과 같은 형태의 짧은 URL로 반환하는 RESTful API입니다. developers.naver.com process.env['NODE_.. 더보기
오라클 날짜(TIMESTAMP) 비교 쿼리 현재 날짜에서 7일 이전 데이터 조회, TIMESTAMP를 문자열(CHAR)로 변환해서 비교 SELECT * FROM TABLE WHERE TO_CHAR(타임스탬프컬럼, 'YY/MM/DD') < TO_CHAR(SYSDATE - 7d, 'YY/MM/DD') 데이터 양이 많을 때 조회할 데이터 수 지정하기, WHERE절에서 ROWNUM 값을 지정한다. SELECT * FROM TABLE WHERE TO_CHAR(타임스탬프컬럼, 'YY/MM/DD') 더보기
[python] 자료 형 변환 (casting) 자료형 강제 형 변환하는 방법 list -> set -> list 형 변환 set() 자료형은 중복 값이 허용되지 않는다. a = [1,2,3,4,5,6,6,6] print(type(a)) # a = set(a) #중복되는 값 제거 print(type(a)) # print(a) #{1, 2, 3, 4, 5, 6} a = list(a) print(type(a)) # print(a) #[1, 2, 3, 4, 5, 6] string -> int 형 변환 a = "5" print(type(a)) # b = int(a) print(type(b)) # print(b) # 5 float -> int 형 변환 a = 10 b = 2 c = a/b # 나누기를 하면 소수점이 있는 float 타입으로 반환 print(ty.. 더보기
[python] 딕셔너리(dict), 집합 set() 사용법 딕셔너리 선언 a = {} a = dict() a = {"키":"값"} Json 형태와 매우 비슷합니다. a = {"이름":"헐크", "나이":30} print( a ) # {'이름': '헐크', '나이': 30} a["이름"] = "홍길동" print( a ) # {'이름': '홍길동', '나이': 30} 딕셔너리 키 지정하여 삭제 : del a = {"이름":"헐크", "나이":30} del a["이름"] print( a ) # {'나이': 30} 딕셔너리 키 추출 : pop a = {"이름":"헐크", "나이":30} a.pop("나이") print( a ) # {'이름': '헐크'} 딕셔너리 요소 추가 : update a = {"이름":"헐크"} b = {"나이":30} c = {"직업":"의사".. 더보기
[python] 튜플(tuple) 사용법 튜플 선언 방법 a = () a = tuple() a = (1, 2, 3, 4, 5) b = 1, 2, 3, 4, 5 ※ 튜플 특징 : 튜플은 값을 변경하거나 삭제 할 수 없습니다. (값 생성 후 변경 불가) 패킹 : 튜플로 만드는 작업 a = 1, 2, 3, 4 언패킹 : 튜플에서 값을 꺼내는 작업 a = 1, 2, 3, 4 a1, a2, a3, a4 = a print(a1) # 1 print(a2) # 2 print(a3) # 3 print(a4) # 4 a = 1, 2, 3, 4 print(a[1:3]) # (2, 3) 튜플을 이용하여 두 개의 값 맞바꾸기 a = 100 b = 200 a, b = b, a print(a) # 200 print(b) # 100 더보기