본문 바로가기
반응형

직장이 아닌 직업을 가지자!764

SOA 서비스 지향 아키텍처(Service Oriented Architecture) 마이크로 서비스의 근간이 되는 SOA아키텍처를 통해서 아키텍처의 발전과 실패원인을 분석하여 인사이트를 얻자!세부 구현기술은 변했지만 MSA등 분산 시스템의 아키텍처 사상은 그래도 반영 됨.SOA의 본질적인 개념을 파악하여 대용량 시스템 구현에 활용하자!1. SOA(Service Oriented Architecture)란? 서비스 단위로 기능을 쪼개서 재사용하자! 2000년대 초반 대기업·금융권에서 유행했던 아키텍처 입니다.Business Service주문, 결제, 배송 같은 업무 단위 서비스Task Centric Service특정 업무 단계에 집중한 서비스Entity Centric Service고객, 상품 같은 데이터 중심 서비스Intermediary Service (중간 서비스)아키텍처에 유연성을 더해.. 2025. 8. 26.
비동기 아키텍처(=Asynchronous Architecture) 비동기처리메세지 큐를 기반(MQ, RABBIT MQ, KAFKA, SQS etc)응답을 기다리지 않고 바로 리턴큐 뒤에 다수의 워커가 메세지를 읽어서 처리(워커수를 조정하여 대용량 처리가 용이)비동기 처리 메세지 패턴Fire&Forgetpattern : Producer가 메세지를 그냥 큐에 던져놓고 응답 안 기다림소비여부는 신경 안씀일반적인 MQ 모델에 가까움Producer -> Queue -> Consumerex) ActiveMQ, SQS, RabbitMQ의 기본 Queue Publish&Subscrbepattern : Producer가 메시지를 발행(Publish)하면, 여러 Consumer들이 각각 구독(Subscribe)해서 받아감같은 메세지를 여러 Consumer가 동시에 받을 수 있음.ex) .. 2025. 8. 21.
용어정리) OLTP, OLAP란? OLTP랑 OLAP은 데이터베이스를 쓰는 목적에 따라 나눈 개념OLTP (Online Transaction Processing) → 실시간 거래 처리용OLAP (Online Analytical Processing) → 분석용 OLTP (온라인 트랜잭션 처리)앱/서비스에서 사용자가 직접 쓰는 DB특징빠른 읽기/쓰기 성능이 중요함데이터는 정규화해서 중복 최소화 (INSERT/UPDATE 잦음)하나의 요청(주문, 결제, 로그인 등)을 빠르고 정확하게 처리해야 함예: 은행 송금, 쇼핑몰 주문, 로그인 처리 OLAP (온라인 분석 처리)경영진/분석가가 통계를 내는 DB특징대량의 데이터를 모아 복잡한 조회·집계를 수행데이터는 비정규화/스타 스키마로 저장 (JOIN 최소화, SELECT 위주)쓰기보단 읽기가 대부분,.. 2025. 8. 21.
5) nonos(No No Stress) - 발주처리 기능! 발주처리 기능 테스트https://youtu.be/Wo-7BgyFcfU?si=A5IZoG1cJykYgZ0U 발주 기능은 일단 요렇게! WILL-DO로는 READY상태에서 ORDERED상태로 변환할 때 실제 NaverStore API를 통해서 배송준비 상태로 주문상태를 변경해줘야 함.(신규주문 to 배송준비)그 이후 송장 업데이트를 한 뒤 배송 중으로 업데이트 해줘야 함.위 영상에서는 일단 엑셀처리를 한 내용이며 1) NaverStore API를 통해서 상태변경을 하는 작업2) Ordered 데이터들을 모아서 발주처리를 해야 함.3) 주문건수가 많을 경우 여러번에 거쳐서 상태변경을 해야 함.발주 대상을 모아주는 처리와 발주를 처리 하는 부분을 따로 개발?아니면 그냥 사라지게 만들고 마지막에 발주버튼을 클릭.. 2025. 8. 19.
왜 Cache가 필요한가? 실무에서 꼭 알아야 할 캐시 패턴 10가지! Cache는 왜 필요할까?DB는 느리고 비싼 자원 → 요청이 몰리면 쉽게 과부하캐시는 빠른 메모리 → 자주 쓰는 데이터를 미리 올려두고 바로 꺼내씀결과적으로서버 부하 줄이기응답 속도 빨라짐DB 장애 위험 감소부하땜에 DB서버 죽음..ㅋㅋ자주 사용하는건 캐시에 두고 DB는 꼭 필요할 때만 사용하자! Cache 기법 4대장(1) TTL (Time To Live)캐시에 넣을 때 시간 제한을 둠 → 일정 시간 지나면 자동 삭제장점: 실시간성이 덜 중요한 데이터에 적합하며 캐시가 무한정 커지지 않음단점: DB 데이터가 바뀌면(update) 캐시 데이터와 불일치가 발생할 수 있음그래서 DB가 업데이트 될 때 관련 캐시를 즉시 삭제!다음 요청이 들어오면 DB에서 불러오고 최신 데이터로 업데이트(Lazy Loadin.. 2025. 8. 18.
C10K 문제(C10k Problem)란 무엇인가? 1. C10K 문제의 배경1990년대까지만 해도 웹 서버가 수백 개의 동시 연결만 처리해도 충분했습니다. 하지만 인터넷 보급과 함께 수천~수만 명이 동시에 접속하는 상황이 생기면서 기존 방식으로는 서버가 감당하기 어려운 한계에 부딪히게 되었고, 이를 C10K 문제라고 부릅니다.여기서 "C10K"는 Concurrent 10,000 connections의 줄임말입니다.2. 기존 방식의 한계초기 서버는 연결마다 스레드나 프로세스를 생성하는 구조였습니다.연결이 늘어날수록 스레드 수가 기하급수적으로 증가컨텍스트 스위칭 비용 증가메모리 낭비와 동기화 오버헤드 발생또한 Blocking I/O를 사용했기 때문에, 한 연결이 I/O 대기 상태라면 해당 스레드는 CPU를 제대로 활용하지 못했습니다.3. 해결 방법Non-b.. 2025. 8. 16.
대용량 아키텍처 설계(feat. 조대협의 대용량 아키텍처 설계 로드맵) 너무 재밌을 것 같아서..질러버렸다! 내돈내산! 아주 오래전부터 알고 있었던 블로거 "조대협" 님 강좌!오프라인에서도 한번 들었었는데 ㅎㅎ 이제는 온라인이닷!내가 알고 있는 아키텍처 지식들을 좀 더 업데이트를 할 시기이다.사실 너무 오래되어서 잘 기억도 나질 않는것도 많다-_-;;일단 개인프로젝트(코틀린)는 홀딩! 내일은 광복절!(금) 토, 일 동안 강좌를 들어보자:) 학습목표대용량 아키텍처를 설계하기 위해 아키텍트로서 알아야 할 12가지 지식- 비즈니스, 운영, 시스템 설계 등 넓은 시야- 모놀로식, SOA, MSA 등 현대의 아키텍처가 발전해온 히스토리와 각 아키텍처의 특성을 알고, 자사의 비즈니스 목적과 상황에 따라 맞춤화된 아키텍처 설계 역량을 기릅니다. - 전체 시스템을 아우르는 아키텍트.. 2025. 8. 15.
portfolio 개인프로젝트Title : easy naver storeSite : http://easy-ns.synology.me/Server : 개인 NASFrontend : React.jsBackend : SpringBoot(Java)LLM : ChatGPT (발주 시 업체매핑을 위해 사용)DB : MySQLLogin : Naver loginGithub : PrivateTitle : nonos(No No Stress)Server : 현재 개발 중~ingFrontend : React.js / Backend : SpringBoot(Kotlin) - monolith로 개발DB : MySQLGithub : Private주문발주처리 기능 : https://youtu.be/Wo-7BgyFcfU?si=NqLdC5yVOulsF.. 2025. 8. 12.
kotlin 뽀개기_02) 코틀린 왜 배워야하나? 1. 코틀린이 뭔가요?JVM 위에서 동작하는 현대적인 프로그래밍 언어입니다. (Java Virtual Machine)JetBrains(인텔리제이 만든 회사)가 만들었고, 2016년에 1.0 정식 버전 출시.Java와 100% 호환되면서도, 문법이 훨씬 간결하고 안전성(Null 안전성 등)을 강화했습니다.안드로이드 공식 언어(2017년 Google I/O에서 발표)로 채택되었고, 서버 개발, 데이터 처리, 웹 백엔드에서도 활발히 사용됩니다.2. 왜 배워야 하나?1) 문법이 깔끔하고 안전하다불필요한 코드 줄이고, 실수 가능성(특히 NPE)을 줄여줍니다.예) val name: String? = null → Null 허용/불가를 타입에서 명시.2) Java 개발자에게 진입장벽이 낮다Java 문법 기반이어서, J.. 2025. 8. 10.
4) nonos(No No Stress) - UI 작업 시작! 이번 작업은 UI작업 입니다.기존 DeleteButton 제거하고, OrderButton으로 교체 작업 입니다.체크박스를 클릭하면 전체가 선택이 됩니다. 그리고 오른쪽에 Delete버튼이 생성 됩니다.react-admin에서 제공해주는 디폴트 기능 입니다.주문 리스트에서 버튼 Wrapper를 연결해줍니다.여기서 중요한것은 import { List, Datagrid, TextField, NumberField, ListProps} from "react-admin";import { ReactElement } from "react";import { BulkOrderButtonWrapper } from "./BulkOrderButtonWrapper.tsx";export const .. 2025. 8. 8.
부자가 되려면? 1. 돈에 대한 태도를 바꿔야한다. 즉, 스스로 소비의 통제를 할 줄 알아야한다.2. 100일 프로젝트 해보기 100일동안 최대한 지출 안해보기!3. 부자들은 다르게 생각한다. 항상 많이 쓰고나선 이번달부터 아껴쓰자! 라고 다짐하는 나..:(4. 근로소득은 휘발성이며 근로소득을 자산소득으로 바꾸지 않으면 부자가 될 수 없다. 돈의 가치는 항상 하락한다. 하지만 자산은 다르다!5. 자산을 소유하기 위해서는 먼저 선행이 되야하는것은? 좋아하는 일을 찾아서 하고 열심히 노력해서 장인이 되자! 장인이 되면 몸값은 오를것이다. 혹은 돈을 벌 수 있는 수단이 될 수 있다.근로소득자라면 몸값을 올려서 수익을 증대시켜라!그리고나서 자산을 통해 투자 수익률을 높여라!그것이 내가 벌수.. 2025. 8. 5.
kotlin 뽀개기_01) 학습 커리큘럼 학습링크 : linkplayground : link커리큘럼Step 0: 코틀린이란? 코틀린에 대해 궁금해하고 뭔지 알아보기ex) 왜 배워야하나?Step 1: 기본 문법 익히기변수 선언 (val, var)조건문 / 반복문 (if, when, for, while)함수 선언과 호출 (fun)클래스와 객체 (class, object, data class) Step 2: 자바 대비 차이점 익히기Null Safety (?, ?:, !!)확장 함수 (fun String.isEmail(): Boolean { ... })컬렉션 처리 (map, filter, forEach)Smart Casts, when의 강력함 Step 3: 실전 프로젝트 접목스프링 부트 + 코틀린 프로젝트 만들기JPA, RestController, S.. 2025. 8. 4.
3) nonos(No No Stress) Front 연동하기! + back단 호출 및 화면에 뿌리기 프론트는 react admin을 연동 합니다.cd nonos-front 후에 npm run dev를 하면 아래와 같이 실행 됩니다. 2025.06.20 - [Language/Kotlin] - 프론트엔드(React)와 백엔드(Kotlin)를 함께 배포하는 Monolith 구조 도전기_01저번 버전1에서는 구조를 두개로 나눴는데 트래픽도 없고 배포도 귀찮고 오버스펙일수 있어서 이번에는 Monolith구조로 해보기로 했다.2025.07.21 - [역량 UP!/Business] - 2) nonos(No No Stress) NaverStore Api 분석 및 개발api분석 후 백단 api를 개발했다면 이제 프론트에서 호출을 하여 화면에 뿌려줍니다.react-admin은 아래와 같이 call하는 부분을 dataPr.. 2025. 7. 26.
참고) ISO-8601란? ISO-8601란? : 국제표준 날짜포맷형태YYYY-MM-DDTHH:mm:ssZ또는 offset 포함YYYY-MM-DDTHH:mm:ss+09:00네이버api에서 오류가 발생하는데 인코딩문제 이다.첫번째 YYYY-MM-DDTHH:mm:ssZ 요런 형태로 해주면 된다. UTC기준인데 Z는 +00:00과 같은 의미! 한국시간은 UTC+9시간이다.계속 포맷문제로 삽질을 했었다ㅋㅋ 2025. 7. 26.
2) nonos(No No Stress) NaverStore Api 분석 및 개발 오늘은 NaverStore Api를 분석 해보겠습니다.그런데! NaverStore Api를 사용하려면 액세스토큰이 필요합니다.액세스토큰을 만들려면client_id, client_secret_sign등이 필요한데이 내용은 application을 등록을 해야 네이버스토어에서 제공을 해줍니다.https://apicenter.commerce.naver.com/ko/member/homehttps://apicenter.commerce.naver.com/docs/commerce-api/current/seller-get-product-order-ids-pay-order-seller아래의 형태로 나오는데 원하는 결과의 api는 아니라 패스!curl -L 'https://api.commerce.naver.com/exter.. 2025. 7. 21.
인생은 한편의 드라마 내 인생이 한편의 드라마라면 지금 현재 내가 직면하고 있는 이 문제에 대해서관객들은 어떤말을 하고 있을까?일어나! 해내는거야! 할 수 있어! 답답하네! 저렇게 해야지! 등등등머리가 복잡할 땐 조금 멀리서 나를 들여다보자답은 이미 나는 알고 있다.무엇을 해야하는지도 알고 있고결정을 해야할 때 결정을 하면 된다.위기는 오히려 기회가 될수 있다.생각해보지 않는것들을 생각하게 만든다.답은 그냥 하는거다! Just do it! 2025. 7. 16.
1) nonos(No No Stress) project 시작 :D 프로젝트 개요Easy Naver Store(ENS) 프로젝트의 2차 버전!이제는 이름도, 목표도 더 명확하게 — nonos로 새롭게 시작합니다.(기존 nonomall이 쇼핑몰 느낌이라 nonos로 교체!)프로젝트 배경스마트스토어 운영은 생각보다 ‘스마트’하지 않습니다.여전히 다음과 같은 수작업이 존재합니다주문 조회 후 직접 엑셀 정리업체별 발주용 엑셀 작성이메일 수동 발송송장 수기 입력반복되는 중복 발주프로젝트 대상스마트스토어 사장님 (소형, 중형, 대형 셀러 모두!)상품 소싱/배송을 외주로 처리하는 중소 판매자왜 nonos인가?비효율적인 수작업은 그만!반복적인 작업과 실수로부터 자유로워지는 스마트한 쇼핑몰 운영 툴NO! Stress! — 운영 스트레스를 최소화NO! Mistake! — 실수 없는 발주/.. 2025. 7. 8.
스타트업 창업자 특징 창업가의 특성1. 주도성2. 변화와 혁신3. 자극 추구4. 책임감5. 엄청난 몰입(끝장보는 마인드)6. 일반인보다 ADHD 6배 높음 ( 충동성 - 퇴사바로함, 엄청난 몰입)본인이 하고자하는 비즈니스와 비슷한 5개(20%씩 겹치는)를 알려달라예를들어 비즈니스의 BM설계는 여기의 구조 / 어떤부분은 어떤기술을 사용 어려운상황속 스킬? 혹은 마인드셋이 요구되는가? -> 투자를 받지 않고도 생존할 수 있는 플랜B를 준비하라!프로젝션을 짰을 때 그게 안된다면 떨어지는건 정말 무서움 -> 자금전략이 정말 중요함.초기엔 MVP(Minimum Viable Product), 최소요건제품을 검증할 자금이 필요!이게 있어야 이걸 할 수 있다. 에서 이게 없어도 어떻게 하면 이걸 조금이라도 해보지?자금이 있으면 바로시작할 .. 2025. 7. 3.
gRPC란? HBase에서 RPC통신이 나오는데 문득 사내 wiki에 작성했던 내용인 gRPC가 블로그에 포스팅이 없어서 퍼왔습니다:)아래 스터디할때 만들었던 소스도 있으니 참고하세요~:)IPCprocess는 기본적으로 상호독립적인데 process간 메모리를 공유하지는 않지만 필요에 따라 서로 정보를 공유해야하는 경우별도 수단을 마련해서 process통신을 하게 되었는데 이를 IPC(Inter Process Communication)라고 부릅니다.SocketOSI 7계층의 Application Layer에서 Transport Layer의 TCP/UDP를 이용하기 위한 수단이다. local 컴퓨터의 프로세스와 remote 컴퓨터의 프로세스가 IPC 통신을 하는 개념이다. 대부분의 언어에서 API 형태로 제공되기 때문에.. 2025. 6. 30.
굿바이 제주! 보호되어 있는 글 입니다. 2025. 6. 27.
프론트엔드(React)와 백엔드(Kotlin)를 함께 배포하는 Monolith 구조 도전기_01 목표우선 kotlin 학습 조금 해주고 프로젝트 구조를 잡아보자!Kotlin이란?코틀린은 안정성, 간결성, 상호운용성을 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어이다.2010년 하반기에 생겨서 2016년 2월 처음으로 릴리즈됐으며, 안드로이드 개발, 데스크톱 어플리케이션, 백단 서버 개발 등 여러 개발분야에서 인기를 얻고 있다.2017년 구글은 안드로이드 플랫폼의 공식 지원언어로 코틀린을 선택했다.2019년 11월 코틀린 1.3이 나옴 2021년 5월 1.5.0이 나옴......2025년 5월 13일 2.1.21이 나옴2010년 당시 Scala나 C# 등의 언어에서 사용할 수 있었던 유용한 기능이 자바에는 없었음.→ Jetbrains는 당시 사용 가능한 JVM언어를 검토 및 자원을 투입→ 새로.. 2025. 6. 20.
반응형