목록전체 글 (61)
be programmer
환경: AWS EC2 t3.micro (RAM 1GB / EBS 디스크 기본 8GB / Ubuntu OS)1️⃣ [시작] AWS EC2 접속 및 네트워크 세팅1. EC2 터미널 접속AWS EC2 콘솔 ➔ [인스턴스] ➔ sekai-server 선택 ➔ [연결] (EC2 Instance Connect)를 통해 웹 터미널 접속.터미널은 여러 탭으로 복제(우클릭 ➔ 탭 복제)하여 동시에 작업 가능.2. 올바른 외부 접속 주소 (URL)❌ https://172.31.x.x:8081 (사설 IP 및 SSL 미설정으로 접속 불가)⭕ http://[EC2 퍼블릭 IP 또는 탄력적 IP]:8081AWS 사설 IP(172.31.x.x)는 EC2 내부용이므로, 외부 브라우저에서는 퍼블릭 IP로 접속해야 함.2️⃣ [이슈 ..
이전에 구현한 Spring 기반 크롤러 사이트가 어느정도의 부하를 견딜수 있는지 궁금했다. nGrinder라는 것이 있어서 이것을 통해 알아보기로 했다. nGrinder는 다음과 같은 방식으로 작동된다. 설치설치는 다음의 사이트에서 war파일을 다운로드 받고, 아래 명령어 입력해서 할수 있다.https://github.com/naver/ngrinder/releases Releases · naver/ngrinderenterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.github.com java "-Djava.io.tmpdir=C:\Users\u..
1. HTTP Stateless(무상태성)와 상태 유지 기법 무상태성(Stateless)이란?HTTP 프로토콜은 서버가 이전에 자기를 찾아왔던 클라이언트(사용자)를 기억하지 못한다는 특징이 있습니다.즉, 사용자가 로그인을 하고 다음 페이지로 이동했을 때, 서버는 "아까 그 사람이네?" 하고 알아보지 못합니다.장점: 서버가 사용자의 상태를 일일이 기억하고 있을 필요가 없어서 메모리가 절약되고, 서버를 여러 대 늘리기(확장하기) 쉽습니다.단점: 로그인 상태를 유지해야 하는 웹서비스에서는 매번 누군지 증명해야 하는 번거로움이 생긴다.상태를 유지하기 위한 기술들 (극복 방법):Cookie (쿠키): 사용자의 브라우저에 저장하는 작은 메모지 같은 데이터입니다. 서버가 로그인한 사용자에게 "너는 1번 회원이야"라고..
배포까지 감안하고 개인 프로젝트를 하는것이다 보니 학교다닐때 어렴풋이 배웠던 개인 인증 개념에 있어서, 다시 한번 볼수 있는 기회였다.public void addInterceptors(InterceptorRegistry registry) { //관리자 페이지 접속 경로 및 관리자 API 요청에 대해 1차 인증 거치기 registry.addInterceptor(adminAuthInterceptor) .addPathPatterns("/my-secret-inbox-9982", "/admin.html", "/api/admin/**");}이 코드를 통해 1차적으로 인증을 거친다.그 이후 인터셉터 클래스가 실행되어 아래 메서드가 실행된다. //리퀘스트, 응답, 핸들..
CORS 보안 명세 때문에 발생한 에러이다.나는 처음에 일반적인 CORS 설정을 정의했는데, 쿠키를 설정하고, 보안 관련 메서드도 추가하면서 allowCredentials()를 true로 설정하게 되었다.확장해가면서 그런 메소드들과 allowedOrigins(”*”)를 그대로 쓰다가 에러가 발생했는데,구글링 결과 그냥 allowedOrigins()를 allowedOriginPattern(”*”)로 변경하라고 했고 바로 해결이 되었다.
https://www.acmicpc.net/problem/16947 전형적인 탐색 문제이다.문제를 읽어보면 사이클을 dfs, 재귀 등 방법으로 찾고, 사이클로부터 파생되는 지선의 깊이를 구해서 출력하면 된다.나는 사이클을 dfs로 찾고, 지선의 깊이를 bfs로 찾았다. 사이클을 찾을땐 재귀로 찾는게 편하다 생각했다. 왜냐하면 나한테 익숙했고, 처음 지점을 기억하고 계속 재귀하기에 사이클의 시작점?을 찾는덴 dfs가 가장 적합하다고 여겼기 때문이다. 사이클을 찾으면 true를 반환하여 탐색을 그만 둔다. 아닐 경우 탐색을 해야하기에 사이클 탐색 배열에 false를 준다. 이외 사이클에서 파생된 지선의 깊이는 bfs로 찾았다. 사이클 찾기public static boolean dfs(int prev, int..
https://www.acmicpc.net/problem/2469 구현 문제이다. 구현 문제를 좋아하지는 않는데 왜냐하면 실제 구현해서 굴러가는 프로그램들 마냥 예외처리를 해야하는 부분이 있고, 무턱대고 구현하기보다는 면밀히 생각해야 하는 부분이 존재하기 때문이다. 문제에 나름 친절히 설명된 사다리 타기의 성질을 이용하여 -가 뜰 경우 swap(차피 하나씩 하나, 여러개 하나 반댓쪽으로 이동되는건 똑같으니), *가 떴을경우 keep going 하면 됨이것을 시작지점, 도착지점에서 시행해서 ?가 뜨는지점에서 만난 후 문자열 비교를 해주면 됨.나는 막판 예외처리하고 swap 해줘야하는걸 생각 못해서 한번만에 맞추지는 못했는데, 그렇게 해야함. swap 안하면 ?지역에서는 -가 있어야 하는 지역임에도 사다리타..
목차1. 정규문법과 정규 언어2. 정규 표현 1. 정규 문법과 정규 언어정규 문법이란?노엄 촘스키가 생성 규칙 형태에 분류한 네가지 문법 중 가장 간단한 레벨에 해당하는 문법 형태생성 규칙의 오른쪽에 위치한 논-터미널 심볼의위치에 따라 구분됨.우선형 문법L -> tB, L->t좌선형 문법L ->Bt, L->t where L,B Vn and t Vt*정규문법에서 우선형 문법과 좌선형 문법의 속성- 모든 우선형 문법은 동등한 좌선형 문법을 만들수 있고, 그 역도 가능- 단 한 문법의생성 규칙이 우선형, 좌선형 형태 규칙이 혼합되어 있으면, 정규문법이 아님 정규문법의 활용컴파일러의 어휘 분석 단계에서 입력 프로그램을 구성하는 토큰의 구조를 정의하는데 주로 사용됨1. 토큰의 구조는 간단하므로 정규 문법으로도 ..
