| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 토스
- 개발자
- it #응집도 #결합도 #소프트웨어
- 토스페이
- ETF
- 리액트
- 포트원
- SQL
- sw
- supabase
- 구글
- OpenCV
- OCR
- 데이터베이스 #백엔드 #데이터
- 오블완
- 정렬
- 개발
- openai
- Node
- 프로그래머스
- 코딩
- 결제
- 입점심사
- AI자격증
- 네이버
- 웹훅
- 프론트
- 프론트개발자
- 티스토리챌린지
- Ai
- Today
- Total
목록전체 글 (49)
croissant_code
Prod 환경의 프로젝트 clone 하기회사 업무용 폴더(company)에 복제하기git clone {주소}SSH 정보 복제SSH 정보 복제Window : C:\Users\{사용자이름}\.sshMac : ~\Users\{사용자이름}\.sshconfigid_rsaid_rsa.pubknown_hostsknown_hosts.old복제 방법무조건 USB로 옮기기(보안 + 쉬움)복제한 파일을 노트북 또는 데스크탑의 같은 경로에 입력VSCode 확장자 설치현재 상황데스크탑 또는 랩탑에 복제한 파일들이 위치Window : C:\Users\{사용자이름}\.sshMac : ~\Users\{사용자이름}\.sshGit Clone {Prod 환경 프로젝트 주소}VScode SSH Extension 설치VSCode 와 SSH ..
Truthy Falsy참 같은 값, 거짓 같은 값// Faslyundefinednull0-0NaN""0n// Truthy// 7가지 Fasly 값을 제외한 모든 것"hello"123[]{}() => {}// 어떤 상황에 사용?function printName(person) { if (!person) { return; } console.log(person.name);}let person;printName(person);단락평가false && true 인 경우에는 false만 나와도 뒤에 부분은 출력하지 않는다.연산에도 Truthy와 Falsy도 사용이 가능하다.function returnFalse() { console.log("False 함수"); return false;}function..
React.js오픈소스 JS 라이브러리 기술적인 특징컴포넌트를 기반으로 UI를 표현화면 업데이트 구현이 쉽다화면 업데이트가 빠르게 처리컴포넌트란 구성요소를 의미한다. 화면을 구성하는 요소 UI를 구성하는 요소를 의미한다. 만약 컴포넌트를 구성하지 않는다면 공통적인 부분을 전구 만들어야 한다. 중복 코드가 또한 늘어난다.따라서 리액트에서는 중복 코드를 컴포넌트로 만들어서 처리한다.화면 업데이트에 관해서 알아보자. 사용자의 행동에 따라 웹 페이지가 모습을 바꾸는 것을 의미한다.리액트는 선언형 프로그래밍이기 때문에 화면 업데이트가 쉽다. 여기서 선언형 프로그래밍이라는 것은 과정은 생략하고 목적만 간결히 명시하는 방식이다. (반대로는 명령형 프로그래밍, 목적을 이루기 위한 모든 일련의 과정을 프로그래밍하는 것)..
Node.js리액트는 노드 기반으로 돌아간다. 기존 JS는 웹 환경에서만 사용이 가능(개발자 도구 창)했지만, Node는 웹 환경이 아니여도 JS를 실행시켜주는 JS의 실행환경(Run Time)이다. 즉, JS가 구동할 수 있도록 만들어주는 실행환경이라고 생각하면 된다. NPM은 Node Package Manager라는 것이다. Node들의 패키지를 관리하는 도구이다. Node.js에서는 패키지가 프로그램의 단위이다. Ex) 쇼핑몰 패키지, 웹 패키지 등등Node.js 모듈 시스템 이해모듈이라는 것은 특정 기능을 1개의 파일이 아닌 N개의 파일로 나누어서 만드는 것을 의미한다. 여기서 기능별로 나누어진 JS의 파일들을 모듈이라고 한다. 예를 들면, user.js, cart.js, payment.js 이런..
변수와 상수// 변수let age = 27; // 선언한다 + 초기화한다// 만약 let age; 까지만 하고 출력한 경우 undefined가 나온다// let은 중복 선언이 불가능let age;console.log(age); // undefined// 상수// 상수라는 것은 한번 저장된 것은 변경이 불가능하다.const birth = '19970822';birth = '19970101'; // 불가능하다.// 변수 이름은 협업에 이쁘게 작성하자자료형// 원시타입은 기본형 타입이다(5가지)// Number// NaN도 Number에 포함된다.let inf = Infinitylet mInf = -Infinity// Stringlet myName = "트럼프";let myIntroduce = "대단하다";c..
1주일 전에 AICE 시험을 봤습니다. 개인적으로 큰 비용을 지불하는 만큼 많이 준비를 했습니다. 현재 아직 결과가 나오지는 않았지만 어떻게 학습을 하며 시험준비를 했는지 공유를 해보려고 합니다. AICE 시험은 총 14문제로 이루어져 있습니다.책에는 상세하게 적혀있지만 제가 느끼기에는 다음과 같았습니다.데이터 불러오기데이터 전처리, 결측치 및 시각화와 분석딥러닝과 머신러닝 모델링 및 해당 모델링 평가제 기준에서는 크게 3가지로 이루어져 있었습니다.시험 준비저는 이론을 보는 것보다 시험문제를 풀며 체득하는 것을 좋아합니다. 따라서 저의 경우에는 AICE 공식사이트에 올라온 샘플 문항을 시험 보기 1주일 전부터 2일에 걸쳐 10번을 반복해서 풀었습니다. 그 결과 전체적으로 시험문제가 어떻게 출제 되는지 알..
회사에서 FastAPI로 자사의 서비스를 구성하면서 아키텍처에 흥미가 갔다. 따라서 현재 회사의 구조를 클린아키텍처로 바꿔봐야겠다는 생각이 들었다. 왜냐하면 결제와 주문 부분의 비즈니스 로직이 여러개의 도메인에 묶여있었기 때문에 유지보수와 에러가 발생하는 경우 코드를 파악하기 힘들었고, 내가 작성한 FastAPI코드는 전체적으로 객체지향 개발이 아닌 약간의 스크립트형식의 코드였기 때문이다. 또한 테스트 코드를 작성해보려고 하니, 비즈니스 로직이 너무 길고 다양한 외부 모듈에 의존을 하고 있어 테스트하기 어려웠다. 물론 자바와 스프링부트로 자사의 레거시 코드를 마이그레이션 한 적은 있지만, FastAPI를 처음부터 설계할 때는 생각보다 모르는 것들이 많았기 때문에 빠른 기능 구현을 목적으로 개발을 했고, ..
MTTR : 평균 복구 시간장애 발생 후 정상화까지 걸리는 평균 시간MTTR = 총 복구 소요 시간 / 복구 건수MTBF : 평균 고장 간격 시간장애 간 평균 무장애 운영 시간MTBF = 총 가동 시간 / 장애 발생 횟수UAT : 사용자 인수 테스트실 사용자가 검수 후 서비스 사용 승인QA 완료 항목 수 / 전체 항목 수로 커버리지 산정SLA : 서비스 수준 협약서비스 운영 안정성에 대한 고객과의 약속Uptime : 서비스 가동 시간 비율100% 중 몇 %의 시간 동안 문제가 없었는지Uption(%) = (1 - Downtime / TotamTime) X 100 월 기준으로 해당 정보들을 산정할 것. 특히, Uptime, SLA, MMTTR, MTBF는 월 기준이 가장 많이 사용UAT의 경우 기능 단위 ..
자사 플랫폼에 결제 시스템을 개발하며 깨닫고 느낀 것들을 정리하려고 합니다. 일단 현재 자사의 플랫폼에는 카드결제, 간편결제만 연동이 되어 있습니다. 그리고 간편결제의 경우에는 카카오페이, 토스페이까지 연결되어 있으며 앞으로 네이버페이까지 연동을 할 계획입니다.대한민국 결제 흐름대한민국은 유저의 카드 정보를 함부로 저장할 수 없도록 법이 규정되어 있습니다. 따라서 Stripe 같은 해외 서비스의 경우에는 아래 그림처럼 유저가 카드정보를 입력하면 해당 정보들을 가맹점, Strip, 카드사 까지 단계적으로 이동을 합니다.즉, 결제의 구조가 매우 직관적이 단순합니다. 하지만 중간 과정에서 사용자 카드 정보를 언제든지 저장할 수 있어 좋지 않습니다. 하지만 대한민국의 경우에는 다릅니다. 한국에서는 중간 과정의 ..
신규 플랫폼을 만들면서 일반적인 회원가입 방법을 이메일 인증 기반의 회원가입으로 적용했다. 그 후 구글 SSO를 적용해, 사용자가 간편하게 인증을 해서 자사의 서비스를 경험하도록 만들었다. 따라서 이와 관련한 내용을 정리하려고 한다.일단 설명에 앞서 자사의 플랫폼은 FastAPI를 사용하고 있다. 이유는 AI를 활용을 하다보니 AI에 최적화된 프로그래밍 언어인 Python이 필요했고 빠른 개발 속도를 원했기 때문이다. 그래서 Python과 FastAPI를 선택했다. 또한 Java와 Spring Boot에 익숙한 사람으로서 빠르게 개발하면서 안정성을 어느정도 확보하는 Type 형 지정이 필요했다.이메일 기반의 일반 회원가입 및 로그인내가 생각한 이메일 기반의 회원가입은 아래 순서와 같다. 1. 사용자가 필..