분류 전체보기 43

[Spring, 디자인 패턴] DI(Dependency Injection) 의존관계 주입, 의존성 주입

DI(Dependency Injection) 의존관계 주입이란 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉입니다. 의존관계(Dependency)는 의존대상 B가 변하면 의존대상 A에 영향을 미치는것입니다. A객체에서 B객체의 기능을 필요로하는 경우 의존관계라고 표현할 수 있습니다. 김영한 님의 스프링 핵심 원리 강의를 보면 애플리케이션을 하나의 공연, 각각의 인터페이스를 배우라고 비유를 들고있습니다. 배우가 바뀌면 공연에 영향을 미치므로 의존관계라고 볼 수 있습니다. 의존관계 주입(Dependency Injection)은 의존관계를 외부에서 결정하고 주입하는 것 입니다. 의존관계 주입이 필요한 이유 아래와 같이 공연은 배우를 의존하고 배우의 구현클래스인 원빈과 장동건이 있다고 생각해봅시다. 공연의..

[Java] 추상클래스(abstract class)와 인터페이스(interface) 비교 및 활용

자바를 학습하다보면 추상클래스와 인터페이스를 마주하게 되는데 추상클래스와 인터페이스는 존재 목적이 다름에도 불구하고 공통점이 많아서 헷갈리기도 하고 어느 상황에 사용해야할지 감 잡기가 참 어렵습니다. 추상클래스와 인터페이스의 공통점/차이점을 비교해보고 어느상황에 활용해야할지 한번 생각해보겠습니다. 추상클래스와 인터페이스의 공통점/차이점 추상클래스 인터페이스 자기 자신이 직접 객체를 생성할 수 없다 추상 메소드 선언이 가능하다 클래스가 가지는 모든 속성과 기능을 가진다 상수, 추상 메소드만 가진다 다중 상속이 불가능하다 다중 상속이 가능하다 첫번째 차이점을 보겠습니다. 추상클래스 : 클래스가 가지는 모든 속성과 기능을 가진다. 인터페이스 : 상수, 추상 메소드만 가진다. 둘 다 추상메소드 선언이 가능하지만..

[IntelliJ] 유용한 단축기 모음(Windows, macOS) - 상시 추가예정

Mac 키보드 기호(참고) ⌘ : command ⌃ : control ⇧ : shift ⌥ : option ⏎ : return ⌃ : control ⌫ : delete Windows macOS 한줄 주석 Ctrl + / ⌘ + / 블록 주석 Ctrl + Shift + / ⌘ + ⌥ + / 라인 복사 Ctrl + D ⌘ + D 라인 삭제 Ctrl + Y ⌘ + ⌫ 라인 이동 Alt + Shift + ↑ / ↓ ⌥ + ⇧ ↑ / ↓ 구문 이동 Ctrl + Shift + ↑ / ↓ ⌘ + ⇧ + ↑ / ↓ 현재 구문 완성 Ctrl + Shift + Enter ⌘ + ⇧ + ⏎ 변수 추출 Ctrl + Alt + V ⌘ + ⌥+ V 생성 목록 보기 Alt + Insert ⌘ + N 테스트 클래스 생성 클래스 명/..

[자동매매, Python] 1. 업비트 Open API 신청, pyupbit설치, 잔고조회

업비트는 자산 조회, 주문 조회, 주문, 취소 등 Open API를 통해 다양한 기능을 제공한다 프로그램 개발을 하기 위해 Open API 신청을 해야한다. 1. 업비트 Open Api 신청하기 업비트 사이트에 로그인하고 My 페이지에 들어가면 Open API 관리 버튼이 있다. Open API 관리 창에 들어오면 API Key를 발급받는 창이 나오는데 사용할 기능과, 사용할 IP를 입력하면 API Key 발급이 가능하다. 필요한 기능은 어떤 프로그램을 개발하냐에 따라 다르지만 내가 필요한 기능은 자산조회, 주문조회, 주문하기 선택해주고 IP를 입력하고 Open API Key 발급받기 버튼을 누른다. IP를 잘 모르겠으면 네이버 검색창에 내 IP 라고 검색하면 확인 가능 (네트워크 속성들어가서 ip확인하..

레오폴드 FC750RBT PD 갈축 기계식 키보드 개발자 키보드 후기

레오폴드 FC750R Bluetooth 갈축 후기입니다. 블루투스 모델이 출시하고 바로 구매하였는데 이제서야 후기를 작성하네요 1년정도 사용한 것 같습니다. 그레이 블루 색상이고 영문버전 입니다. 후기에 앞서 말씀드릴점은 저는 절대 윤활을 따로 하지 않습니다. 비싼 돈주고 키보드를 사서 그런 고생까지 하고싶지 않습니다 그냥 윤활을 따로 하지 않아도 될 정도의 인생 키보드를 찾고싶습니다 타건감 청축과 적축의 중간쯤인 갈축을 좋아하는 편인데 생각했던거보다 좀 더 사각사각 거리는 느낌입니다. PBT 키캡의 정갈한 키감이 느껴집니다. 장점 1. 심플한 디자인 단순한 디자인을 좋아하는 터라 레오폴드 키보드 디자인을 매우 좋아합니다. (백라이트 극혐) 백라이트 없는것도 맘에 들었고, 레오폴드의 대표색상인 이 그레이..

리뷰 2022.11.29

[C++] 동적 라이브러리(DLL) 생성 & 명시적(explict) 연결하기

DLL(Dynamic Link Library) 이란 이름 그대로 동적으로 링크하는 라이브러리(Library : 표준화된 함수 및 데이터 타입을 모듈화한 프로그램 모음)를 말함 실행 파일에 결합되지 않으며 필요한 시점에 메모리로 읽어오고 불필요 시 메모리에서 내릴 수 있습니다 연결 방식은 명시적 링킹(Explict Linking)과 암시적 링킹(Implicit Linking) 두가지가 있습니다 암시적 연결(Implicit Linking) 암시적(묵시적) 연결은 실행 파일에 DLL 정보를 프로그램에 내장하는 방법입니다 실행 파일에 정보를 포함하기 위해서 dll, lib, header 파일이 필요하고 프로그램을 시작하면서 해당 DLL을 로드합니다. 명시적 연결(Explict Linking) 명시적 연결은 프로..

프로그래밍/C++ 2022.11.28

Google Cloud Platform(GCP)에 Python 자동매매 프로그램 돌리기

파이썬으로 개발중인 비트코인 자동매매 프로그램을 개인 pc로 돌리게되면 항상 pc를 켜놓아야 하고 서버 점검등으로 프로그램이 종료 되었을 때, 외부에 있을경우 다시 실행시킬 수 없는 여러 문제들이 존재한다. 방법은 많지만 호스팅을 제공하는 클라우드 컴퓨팅 서비스를 이용하면 이런 문제들을 해결할 수 있다. 구글에서 제공하는 Google Cloud Platform 을 이용해서 서버에 프로그램을 돌려보자 1. Google Cloud Platform 가입 Google Cloud Server를 이용하려면 Google Cloud Platform Consol에 접속을 해야하기 때문에 Google Cloud Platform 가입을 해야한다. (Gmail 계정 필요) Google 클라우드 플랫폼 로그인 Google 클라..

Naming Convention 프로그래밍 명명 규칙

Naming Convention (명명 규칙) 컴퓨터 프로그래밍에서 명명 규칙은 소스 코드 및 문서에서 변수, 유형, 기능 및 기타 엔터티를 나타내는 식별자에 사용할 문자 시퀀스를 선택하기 위한 일련의 규칙입니다. 대표적인 Naming Convention 종류 1. lowerCamelCase 맨 앞글자를 소문자, 단어의 첫문자를 대문자로 표기합니다. ex) userName 2. snake_case 각 단어를 언더바로 구분합니다. ex) user_name 3. PascalCase (UpperCamelCase) 단어의 첫문자를 대문자료 표기합니다. ex) UserName 4. kebab-case 각 단어를 하이픈으로 구분합니다. ex) user-name 5. typeHungarianCase, type_Hun..

[Python, Flask] 파이썬 Flask 로 웹페이지 만들기

Flask 란? Flask는 Python을 이용하여 웹사이트를 구축할 수 있는 초소형 micro framework 입니다 Django 대신 라이트한 개발을 할 때 유용합니다. 1. 설치 pip를 이용해 설치 후 Flask를 사용 할 파일에 import 시켜주면 사용할 준비는 끝 render_template 는 html을 불러오는 함수입니다. 2. 예제 (1) Flask 인스턴스 생성, 위 소스에서는 Test라는 name의 인스턴스를 생성하였습니다. (2) 접속하는 URL (3) render_template는 templates에 저장된 html을 불러오는 함수입니다. 위 URL로 접속시 templates 폴더에 있는 index.html을 유저에게 전달하고, name = "anonymous" 처럼 변수를 전..

[자동매매, Python] 자동매매 프로그램 만들기 Prolog

요즘 직장인들은 본업을 유지하면서 별도의 안정적인 수익을 창출하기 위한 파이프라인 구축에 힘쓴다. 스마트스토어, 부동산, 주식, 코인, 유튜브, 블로그 등.. 내 주변만 봐도 N잡러가 열풍이다 나는 개발자이고, 부자가 되고싶었고, 가상화폐 투자 경험이 있고, 패시브 인컴을 원했기 때문에 작년 이맘때쯤 Python으 로 Bithumb 거래소 자동매매 프로그램을 만들었다. 거래소 API를 익히고 가장 기본이라고 알려진 투자 전략 알고리즘을 짜고 백테스팅을 하고(결과가 나쁘지않았음..) 부푼마음으로 내 자동매매봇을 클라우드 서버에 올려서 매매를 돌렸다. 결과는 ... -70%...처참했다.. 테스트로 소액으로 돌려서 다행이지 내 프로그램을 믿고 고액을 투자했다면.. 생각만해도 아찔하다 가상화폐를 너무 쉽게봤고..