전체 글 104

https 서로 다른 도메인간 쿠키 공유하기

요구사항 A앱과 B앱은 스프링부트로 구축했고, 서로 다른 도메인을 갖고 있다. A웹 화면에서 특정 버튼 클릭시 로그인이 유지된 채로 B로 넘어가야 한다. 현재 A와 B의 application.yml servlet: session: cookie: name: JSESSIONID same-site: none secure: true timeout: 36000  A앱 로그인시 쿠키 로그인시 요청 쿠키는 SESSION이고 응답 쿠키는 JSESSIONID이다. 이렇게 로그인 된 후에 B 쿠키 B로 로그인 연동 요청을 보내면 요청쿠키에 A에서 받았던 응답 쿠키인 JSESSIONID인 NjJhYjBlYzYtNzM5ZS00NzliLWE2MzktZjExOThjYmQ2NGY0 이 쿠키는 프로필 Request Cookie..

개발삽질기 2023.09.03

순열, 조합

순열 서로 다른 n개에서 r개를 뽑아서 정렬하는 경우의 수 public class AlgorithmStudy { public static void permutation(int[] arr, int[] out, boolean[] visited, int depth, int r){ if(depth == r){ //(3) for(int num : out) System.out.print(num); return; } for(int i = 0; i < arr.length; i++){ //(1) if(!visited[i]){ visited[i] = true; out[depth] = arr[i]; permutation(arr, out, visited, depth+1, r); //(2) visited[i] = false; ..

[프로그래머스][Lvl1][Java][Javascript] 자연수 뒤집어 배열로 만들기

Lvl1. 자연수 뒤집어 배열로 만들기 문제 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] Java 내 코드 public int[] solution(long n) { String strN = String.valueOf(n); ArrayList arr = new ArrayList(); for(int i = strN.length() - 1 ; i > -1; i--){ arr.add(strN.charAt(i)); } return arr.stream().mapToInt(Character:..

https 인증서 설정

iis 웹 서버에 각 인증서 등록 및 각 FE 포트별로 바인딩 작업한 후, 프론트를 https로 바꿔주니 https와 http가 mix 되었다는 Mixed Content Error 에러가 났다. 백엔드도 도메인으로 https작업 후 다음과 같은 콘솔에러 다시 처음부터 차근차근해보자..! 먼저 로컬에서 https가 spring boot에 적용되는지부터 봐야 한다. 다음과 같이 설정후 https://localhost 접속시 다음과 같이 제대로 설정되어 보이지 않음 다시 처음부터 인증서 .pfx 파일 -> pkcs12 keytool -importkeystore -srckeystore [인증서.pfx] -destkeystore [만드려는.jks 파일] -deststoretype jks 위 명령어로 나온 결과 파..

개발삽질기 2023.08.19

[Next.js] next/image

원본에 비해 훨씬 더 작은 용량으로 이미지를 사용할 수 있음 webp형식 서버에서 자동으로 이미지 최적화 quality 속성으로 얼마나 최적화할지 정의 기본 75 loading="lazy" 자동으로 적용됨 placeholder="blur" 사진이 다운로드 되는 동안 블러 이미지 적용됨, 블러 이미지는 next가 자동으로 만들어 제공함 -> layout shift 방지 소스파일을 스태틱하게 임포트 했기 때문에 위와 같은 최적화가 가능함 빌드타임에 이미 이미지의 너비, 높이 알 수 있음 import example from '/public/example.jpg'; v13 image 외부 이미지를 가지고올 때는 외부 이미지의 크기를 빌드 타임에 알 수 없으므로 반드시 크기를 명시해야함(width, height)..

Front-End/Next.js 2023.06.24

[Next.js Section1] Data fetching 이해하기

SSR 완성된 html이 서버에서 만들어진 뒤 브라우저에 전송됨 페이지 이동시마다 새로 html을 내려줘야 해서 화면 깜박임, 초기 용량 작음 사용자가 많을 때 서버 부하 위험, 보안 유리 SEO에 좋음 CSR 빈 html 나머지는 자바스크립트로 동적으로 그림 화면 깜박임이 없음, 초기 용량 큼 js 캐시 가능, 서버 데이터가 필요할 경우 계속해서 서버와 통신해야 하므로 보안 취약 SEO에 저약 SSG(Static Site Generation) pre rendering : Static한 HTML을 빌드 타임에 미리 만들어 둠(SSR은 request time에) 서버 부하 없음, HTML 캐시 가능, SEO에 좋음 정적인 사이트에 사용 Next.js SSR, CSR, SSG의 장점을 제공 SSR/SSG의 ..

Front-End/Next.js 2023.06.19

Dynamo DB 섹션 19. 216~218

데이터가 다중 AZ 간에 복제되므로 가용성이 높음. 관리형 서버리스 NoSQL 데이터베이스 밀리초 수준의 지연 시간 SQL 쿼리 언어 사용 불가 예) 400KB 미만의 문서를 다루는 작은 서버리스 앱 개발, 서버리스 캐시 분산 NoSQL, 트랜잭션 지원 기능 데이터베이스가 내부에서 분산되므로 방대한 워크로드로 확장 가능 초당 수백만 개 요청 처리, 수조 개의 행, 수백 TB의 스토리지를 갖음(Millions of requests per seconds, trillions of row, 100s of TB of storage) 읽기와 쓰기가 완전히 분리돼 있음 빠르고 일관성이 높음(성능 한자리수 밀리초) 보안, 권한 부여, 관리 기능은 IAM 과 통합되어 있음 적은 비용, 오토 스케일링 유지관리 패치 필요 ..

AWS 2023.06.11

jsessionid

JSESSIONID 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키 즉, 세션에서 사용되는 쿠키 이름이다. HTTP는 stateless하기 떄문에, 새로운 연결이 생성되면 이전 연결은 끊기기 때문에 상태를 유지할 수 없다. 상태를 저장하기 위해 톰캣은 JSESSIONID 쿠키를 클라이언트에게 발급해주고 이 값으로 세션을 유지할 수 있도록 한다. JSESSIONID 동작방식 브라우저 최초 접근 -> Tomcat은 Response 헤더에 JSESSIONID 값 발급 Set-Cookie: JSESSIONID=3CB361E0BE1A9A7DE7DB926DF0772BAE 브라우저 재 요청 시 Response를 통해 받은 JSESSIONID를 Request 헤더의 쿠키에 값을 넣어 서버에 요청. 쿠키를 통해 JS..

Spring 2023.06.07