목록Back-end (18)
초오오오오오짜개발자의낙서장
SSE - Server Sent Event- 클라이언트는 서버로 부터 데이터를 받을수만 있다.- 웹소켓 과는 달리 서버로부터 오는 단방향 데이터 통신이다.(mono-directional)- 서버에서 클라이언트로 실시간 이벤트를 전달하는 웹 기술 배경- HTTP 특징인 비연결성은 연결한 적이 있어도 연결을 끊어버린다는 것이다.- 이를 해결하기 위한 웹 기술은 Polling, Long Polling, WebSocket, SSE가 있다.- 여기서 SSE는 단방향 통신이며 클라이언트의 별도 추사요청 없이 서버에서 업데이트를 스트리밍 할 수 없다는 특징을 가진다. 장점- HTTP를 통해 통신하므로 다른 프로토콜은 필요가 없고, 구현이 굉장히 쉽다.- 네트워크 연결이 끊겼을 때 자동으로 재연결을 시도.- 실시간으로..
프록시란? - 서버와 클라이언트 사이의 중계 역할 자체를 프록시 라고 하고, 그 중계 기능을 하는 장치 또는 응용 프로그램을 프록시 서버라고 한다.- 네트워크 구조에 프록시 서버가 사용되는 위치에 따라 Forward Proxy, Reverse Proxy로 구분된다. 프록시의 종류1. Forward Proxy- 일반적인 프록시 형태- 클라이언트가 직접 인터넷에 접근하는 것이 아닌 클라이언트 단 앞에 Proxy Server를 위치시켜 Proxy Server가 요청을 받고 인터넷에 연결하여 서버와 통신 후 클라이언트에게 반환하는 방식 이점- Proxy의 기능 중 하나인 캐싱 기능을 이용하여 이전의 요청과 동일한 요청이 수신될 경우 프록시 서버에 응답을 저장해두고 클라이언트에게 전달함으로써 불필요한 부하를 줄여..
기존 개발하고 있던 서비스의 서버가 한계에 도달하는 경우, 스케일 업(Scale-Up) 혹은 스케일 아웃(Scale-Out) 을 고려할 수 있다. 스케일 업 은 기존의 서버를 더욱 높은 사양으로 업그레이드하는 것을 의미한다..예를 들어, AWS에서 EC2 t2.micro에서 t2.small로 업그레이드하는 방식이 스케일 업.스케일 업 방식은 상대적으로 간단하게 서버의 성능을 항상 시킬 수 있다는 장점이.하지만, 특정 서버를 무한정 업그레이드할 수 없으며, 장애에 대한 자동복구(failover)나 다중화(re-dundancy) 방안을 제시하지 않는다..또한 스케일 업 전략을 선택하는 경우에는 향후 사용량을 미리 추정하여 미리 고사양의 서버를 확보하는 경우가 있으며 이러한 경우 실제 필요한 서버의 사양보다 ..
1차 데이터 생성제품을 생산하는 도중 환경요인으로 불량에 영향을 줄것이라 가정.제품 생산 기간동안 센서 데이터를 임의로 생성제품 불량 검사 데이터와 센서 데이터를 가지고 bedrock이 연관성을 판단할 것이라 예상1차 데이터 생성 결과제품 불량 검사 데이터와 센서데이터를 생성하는데 시간이 너무 오래 걸림 -> 데이터 생성 알고리즘 수정 필요.만들어진 데이터로 bedrock이 결과를 도출하기에는 데이터의 수가 너무 많음-> bedrock 에 입력할 데이터 수량 감소 필요.제품을 만드는 시간이 4~5시간으로 너무 길어 24시간을 기준으로 만들어지는 제품 불량 검사 데이터가 너무 적음. -> 제품 불량 검사 데이터 수량 증가 필요2차 데이터 생성센서데이터를 생성할때 임계치를 넘기는 센서 데이터를 랜덤하게 생성..
진행하는 프로젝트에서 AWS Lamda, Bedrock을 사용하다보니 api 호출할일이 생겼다. 일반적인 endpoint 만으로는 응답이 오지 않아 원인을 찾던중 AWS 서명이 필요한 것을 알게되어 정리를 좀 하려 한다. - 요청에서 보내는 인증 정보에는 서명이 포함되어야 합니다. AWS Signature Version 4(SigV4)는 AWS API 요청에 인증 정보를 추가하기 위한 AWS 서명 프로토콜입니다. - 비밀 액세스 키를 사용하여 API 요청에 서명하지 않습니다. 대신 SigV4 서명 프로세스를 사용합니다. 서명 요청:요청 세부 정보를 기반으로 표준 요청 생성.AWS 자격 증명을 사용하여 서명 계산.이 서명을 요청에 Authorization 헤더로 추가.- 비대칭 서명 버전 4(SigV..
cors 에러는 웹개발에서 자주 마주치는 보안 정책 관련 오류이다.정식 명칭은 Cross-Origin Resource Sharing브라우저가 다른 출처의 리소스를 요청할 때 보안상 차단하면서 발생 자바스크립트에서의 요청은 기본적으로 서로 다른 도메인에 대한 요청을 보안상 제한한다.브라우저는 기본적으로 하나의 서버 연결만 허용되도록 설정되어있기 때문 우리가 어떤 사이트를 접속할때 인터넷 주소창에 우리는 URL이라는 문자열을 통해 접근하게 된다.이처럼 URL은 https://domain.com:3000/user?query=name&page=1 과 같이 하나의 문자열 같지만, 사실은 다음과 같이 여러개의 구성 요소로 이루어져 있다. 동일 출처 정책동일 한 출처에서만 리소스를 공유할 수 있다.왜?해커가 C..
inteli j 에서 import 가 5개 이상되면 자동적으로 와일드 카드 import로 바꾸어준다 이는 지양해야하는 요소이다. import racingcar.domain.* -> 와일드 카드 import 이다. 이거 편리하다 생각했는데 지양해야 되는구나를 알았다.왜? -> 보안에 취약해 진다다 풀어서 쓴다. Spring Boot 에서 @Column 어노테이션을 써서 일일히 네이밍을 지정해준다. JPA는 자동으로 테이블 명이나 칼럼명을 스네이크케이스로 바꾸어준다. 이것의 주체가 JPA인지 하이버네이트인지 알아보자 하이버 네이트는 자바 언어를 위한 ORM oriented relational Mapping 프레임 워크다 jpa의 구현체로 jpa 인터페이스를 구현하며 내부적으로 jDBC api를 사용한다. j..
const arr = [1,3,2,4,5];const filter1 = arr.filters(thisIsOver => thisIsOver >= 3);// filter 1 : [3,4,5]자바 스크립트 공부중 특이한(?) 메소드를 찾았다. filter 함수인데, 배열의 각 요소를 돌며 callback 함수를 실행해서 조건에 맞는 요소만을 리턴해 준다. c 에서는 for문 돌려서 새로운 배열에 추가하는 방식으로 생각을 했는데, 이런 함수가 있다니 놀랍다. js로 코드를 짜면서 느끼는 생각인데, 나의 사고 방식이 C, C++에 갖혀있고 그 마저도 엄청 좁아서 생각의 확장이 필요해 보인다.
