분류 전체보기 231

[TIL] MSA, API Gateway , JAVA, Nodejs 스텍 고민 꿩먹고알먹고

현재 프로젝트를 스프링부트, JPA, mysql 진행중인데숙련도나 아직 이해못한것도 있으니 꾸준히 디벨롭할 생각인데 문득생각든게 java냐 node냐 각 차이, nosql 등 사용경험을 가져갈려면 또다른 프로젝트를 진행하고나 그래야되는데 그건 솔직히 시간적, 스케일적으로 불필요하게 소모하고 낭비해야될게 많기 때문에 적용하기 힘들다. 그러다 문득 든생각이 서버만 다르게하고 도메인이나 기능을 해당 언어나 프레임워크로하면 되지않나 생각하게되었고 결국 그렇게 사용할때 API Gateway를 쓰는거란걸 알았다.지금당장에 구현되어있는 api 앤드포인트 도메인중 관심종목이나 검색 기능의 경우는 간단한 로직이기도 하고 get 호출인 경우기때문에 1차적으론 monolithic 하게 배포하고 운영하고 테스트해보면 되지만 ..

카테고리 없음 2025.03.06

모의주식 거래(트랜잭션, transaction) 절차 고민

백엔드쪽 작은단위 도메인 서비스와 컨트롤러들은 완성했고, 초반엔 익숙치않고 알아야하는 개념들이 있어 진도가 많이못나갔지만 익숙해지니 간단한 컨트롤러나 도메인은 2-3개씩 금방금방 적용한거같다. 검색CRUD, 검색히스토리, 소셜로그인(카카오), 일반로그인, spring security Authenciation filter, 관심종목CRUD, 실시간 종목 주가시세 웹소켓 및 단일 http, 과거 주가시세, 일부 도메인 통합테스트 진행한상태 이제 마지막 피날레 메인 도메인이될 매수,매도 프로세싱을 진행하기전 프로세싱 고민과 진행 후에는 이 예측이 어떻게 달라질지 TIL방식으로 간단히 적어볼려고한다. 매수매도를 진행하기위해선 계좌, 계좌내역, 주문, 주문히스토리 등이 한번에 이루워 져야하기때문에 복잡하고 설계..

TIL 2025.03.03

XSS, CSRF(로그인 쿠키기반, JWT 토큰 기반, refresh token 전략)

로그인기능을 구현할때 쿠키사용시에는 보안관련해서 secure, httponly, csrf.disable, samesite=strict 등 기본 설정이 필요한데이를위해서 기존에 들었던 XSS와 CSRF가 무엇인지 제대로 공부하게되었다. 먼저 세션기반(쿠키사용)으로 관리할지 JWT 토큰기반으로 관리할지 고민하다가 세션기반의 경우는 서버가 직접관리하면서도 확장성(여러 서버가 생긴다면)이를 통합해야하는 개념과 서버에 과부화가 걸릴수도있는 문제등을 생각했을때 해보고싶은 경험도 중요했지만 이부분은 프리티어 기준으로 너무 신경쓰다보면 꼬일거같아서 과부화와 확장성을위해 좀더 편하게 관리하기위해 JWT 기반으로 사용하기로했다. JWT를 사용한다면 보통 access token과 refresh token을 사용하게 되는데,..

공부/CS 2025.02.18

HTTPs사용시 SSL/TLS Handshake 과정(feat. tcp 3-way handshake)

HTTPS의 ssl/tls이 어떻게 동작하는지 원리를 알고싶어서 공부하게되었다. 사실 EC2가 아니더래오 어덯게 동작하는지 알면좋다고생각했다. HTTP와 HTTPS는 무엇이 다르고 HTTPS는 뭐였지? -> Https는 secure이니 http에 보안을 더한거지-> 그래서 무슨 보안을 더한건데? 보안넣고 통신하는거랑 안하고하는거랑 무슨차이인데? ssl인증서는 뭐야? 이렇게 꼬리에 꼬리름 물어가며 생각하게되었던거같다. 그리고 찾아가면서 참 재미있는 주제로 공부했다고 생각도든다. 추후에 내가 머리로 해당 원리를 머리에 그려갈때쯤, 제일 정확하게 확고하고 쉽게 설명한 글을 발견하였다. https://nuritech.tistory.com/25#google_vignette HTTPS 통신 원리 쉽게 이해하기 (F..

공부/네트워크 2025.02.04

AWS IPv4 프리티어제외 유료화

어느순간부터 AWS에서 비용이 청구되었다.현재 프리티어 계정인데 1월 부터 비용이 청구되는것을 보고 뭐지싶었다. AWS에서 각각의 서비스들의 한가지씩은 모두 사용하더래도 무료이기때문에 돈이 나갈일이없어야하는데 1월26일자 기준으로 1월은 2.37달러, 2월은 예상 7달러가 나오길래 혹시모르는 내 설정이나 과도한 트래픽이 문제인가 생각하게되었다. 웹소켓을 통해 실시간 주식정보를 받는것도있고 EC2안에서 프로젝트를 시작할때 약 2700개의 주식정보들을 인메모리에 저장하여 쓰기위해서 DB에서 가져오는데 테스트할때는 프로젝트를 껏다가 배포하고 껏다가 배포하고 하니깐 많은 쿼리가 발생한다고 생각했다. 먼저 떠올린건 로드밸런서 도입이후기때문에 로드밸런서가 공짜가 아닌가? 생각을했고 원래부터 프로젝트로는 비용을 내지..

TIL 2025.02.02

Https 도입과정 DNS 구조 이해(브라우저에 도메인 입력시 과정)

인트로이 주제는 요근래 백엔드 파트로 도메인을 사고 배포하는 과정에서 예전에 제대로 잡히지 않은 부분들이 세팅을 하면서 알게 되어 개인적으로 정리하기 위한 글이라, 해당 개념에 대한 정의나 정해져있는 정보에 대한 글을 쓰지않고 내가 이해한 흐름대로 써내려가고자한다. 상황먼저 상황은 자바스프링부트 프로젝트를 ec2 인스턴스를 생성해서 해당부분에서 build하고 백그라운드로 실행하도록 구현한 상태,postman 및 클라이언트에서 해당 api의 endpoint 별로 데이터가 잘 내려오는지 확인하기위해 public ip address 또는 public dns주소가 필요했고 ec2 인스턴스를 생성시 해당 정보를 제공하기때문에 해당 주소들로 api 테스트하였다. 하지만 http 라는 부분과 ssl 도입이 필요했고 ..

공부/CS 2025.01.28

Http통신 데이터 형식(바이너리, base64) form-data사용하는이유

시작처음시작은 하나의 의문에서 시작되었다. 왜 JSON 형태의 객체를 주고받을때 문자열 상태 '{ "a" : "hi" }' 와 같은 형태로 변경되어서 보내거나 받는걸까? JSON이면 우리가 content-type에 지정했듯이 application/json 이라고 명시되어있는데 왜 저렇게 문자열로 주고받아야하고 저걸 불필요하게 직렬화 하거나 역직렬화/파싱 처리를 해야할까? 라는 의문이들었다. 데이터 통신의 형태리서치한 결과 http를 통해 데이터를 보낼수있는 형태는 바이너리 와 문자열(텍스트)로만 가능하다는것이다. 물론 다른 프로토콜을 사용하거나 타입이나 그런건 설정으로 바꿀수있다곤하지만 결국에는 바이너리 or 문자열 이다. 여기서 혼동되면 안되는부분이 header에 들어가는 content-type의 경우..

공부/CS 2024.10.16

싱글톤패턴, 멀티쓰레드 stateful 문제

Singleton Pattern을 사용하여 중복하여 new 인스턴스를 생성하지않고 단일 인스턴스를 활용하여, 서비스 이용시 새로운 인스턴스를 생성하는 비용보다 인스턴스 하나를 공유하도록 설계해야 효율적이고 낭비없는 서비스를 제공하게된다. 하지만 싱글톤 패턴을 적용하려다보면 DIP, OCP를 위반하게되고 별도의 세팅을 위한 public 사용못하도록 Private 생성자함수 생성, new 인스턴스 생성 등을 하는 번거로운 코드작업이 추가되는 등 안티패턴이 생겨 이점보단 단점이 생길수있다고 한다. 하지만 스프링의 경우 이러한 싱글톤패턴의 단점을 제거하고 좋은점을 이끌어내도록 하는데 스프링컨테이너, 스프링의 빈이 이것에 속한다. 먼저 3가지의 경우의 코드를 예시로 보여주겠다. 첫번째는 싱글톤적용없이 사용할때, ..

객체지향OOP, 도메인 구조(서비스, 레퍼지토리, 컨트롤러, 모델 )

현재 인프런 강의를 들으며 간단한 개인 기록 노트식으로 작성, 공부를 통해 배운것을 생각해내며 생각나는대로 정리하였고 중간중간 공부 레퍼런스 참고겸 넣는 방식으로 작성. 1. OOP Object -Oriented Programming : 객체지향 프로그래밍여러 패러다임이 있는데 객체지향 프로그램은 단위 객체로 나누고 객체간의 서로 상호작용하는 설계 방법이다. 객체는 클래스를 통해 구조를 가지는데 이때 속성과 메서드를 포함한 것이고 클래스는 어떠한 객체의 청사진의 설계도라고 생각하면된다.이 설계도를 통해 여러개 복사해서 만들어가는 것이고 이때 만들어진것이 new 키워드를 통해 생성되는 인스턴스이다. 클래스클래스는 단일로 존재할수도있지만 상속을 통해 부모 자식관계가 생겨날수있고 이를 상속 이라는 개념이다.부..

언어/자바 2024.06.26

패스트캠퍼스 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online

웹 개발자로 일을 하고 있는데 프론트엔드로서 경험과 지식은 있지만 백엔드에 대한 지식은 없었던 나는 계속해서 백엔드 영역도 공부해야겠다는 욕심과 갈망을 가지고있었다. Java로 시작해서 백엔드 모든 사이클을 다 경험할 수있는 강의는 없을까 찾던 중 그전에도 패스트캠퍼스를 들었는데 초격차 패키지로 모든걸 경험할 수 있는 강의를 찾게 되었다. 이에 대해 지금까지 들은 강의에 대한 후기를 작성하고자한다. 후기 먼저 Java에 대한 개념이 없던 나는 기초부터 공부를 시작해야했는데 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 는 Java개념부터 차근차근 알려주어서 좋았다. 자바 기초를 잡아주는대만 무려 자바기초문법 5시간+ 객체지향 27시간 총32시간을 배우기때문에 자세히 배울수있다. 또한..

카테고리 없음 2023.12.03