본문 바로가기

전체 글149

[매칭 엔진] 거래소의 매칭 엔진에 대하여 1. 매칭 엔진이란?매칭 엔진은 금융 시장에서 구매자와 판매자를 연결하는 정교한 시스템2. 주문 매칭 알고리즘FIFO : 선입 선출 방법으로, 주문의 우선순위를 정하는 고전적인 알고리즘이다. 흔히 매도 매수에 사용되는 방법이다.Pro-Rata : 더 많은 주문을 할 수록 더 많은 거래량을 가진다. 예를들어 총량은 100개 이지만 한사람은 200개, 한사람은 300개를 요청한다. 그렇다면 2:3의 비율에 따라 각각 40:60 거래량을 가진다. 흔히 공모주 청약에서 잘 볼수있는 상황이다.TWAP(Time-Weighted Average Price) : 특정 시간 동안 일정하게 자산을 매수 혹은 매도하여 시장 가격에 미치는 영향을 최소화 하는 전략이다. 주로 대량의 주문을 한번에 체결하면 시장에 미치는 영향이 .. 2024. 11. 6.
[OAuth] Github 소셜 로그인 구현하기 1. Github에서 OAuth app 추가하기https://github.com/settings/developers 로 들어간다.새로운 OAuth app을 추가한다.Homepage URL에는 해당 웹페이지의 주소를 넣고Autorization callback URL 은 응답 받을 주소를 입력한다.만들어둔 Application name을 클릭하여 아래 세팅으로 접근한다.Client ID와 Client secret을 잘 적어둔다.2. 로그인 과정GET : https://github.com/login/oauth/authorize?client_id=${process.env.CLIENT_ID}&redirect_uri=${redirect_URI}&scope=user:email 위 요청을 보내면 앞서 작성한 Autho.. 2024. 10. 17.
[Node.js] ORM은 뭘 써야 할까? 1. 일단 ORM이 무엇인가?ORM(Object-Relational Mapping)은 객체 지향 프로그래밍에서 객체와 관계형 데이터베이스의 데이터를 연결해주는 기술이다.직접 SQL을 작성하지 않고도 데이터베이스 작업을 진행한다.데이터베이스의 테이블을 애플리케이션의 클래스나 객체로 매핑한다.2. ORM의 장점생산성 향상 : SQL을 직접 작성할 필요 없으니, DB작업을 최소화 할 수 있다.유지보수 용이 : DB 관련 코드가 줄어들고, 비즈니스 로직과 DB로직이 분리되어 유지관리가 쉬워진다.재사용성 : ORM을 사용하면 DB시스템을 쉽게 교체하고, 동일한 코드로 여러 DB에 재사용이 가능하다.3. 대표적인 언어별 ORMNode.js의 TypeORM, Sequelize 등Java의 HibernateC#의 En.. 2024. 10. 7.
[암호화] Node.js의 암호화 모듈 1. bcryptBlowfish 암호를 기반으로 둔 암호화 해시 함수입력값을 고정된 길이의 출력값으로 변환입력값을 여러 번 반복해서 암호화하기 때문에 보안성이 매우 높다는 장접이 있지만, 안전한 암호화를 위해 암호화 속도가 느리다는 단점이 있다.특징고유 소금 사용 : 각 비밀번호에 고유한 소금을 추가하여 동일한 비밀번호라도 매번 다른 해시 값을 생성비용 인자(cost factor) : 비용 인자는 해시 연산의 복잡도를 설정하는 값으로, 해시 연산을 여러 번 반복하여 공격에 대한 저항력을 강화.보편적인 사용 : bcrypt는 광범위 하게 사용되며, 많은 시스템에서 지원장점보안성 : 해시 연산에 반복을 적용해 공격자의 비밀번호 추측을 어렵게 만듦.소금 적용: 소금을 적용해 동일한 비밀번호라도 해시 값이 다르.. 2024. 10. 2.