💡 IllegalArgumentException 이란? - 사용자가 값을 잘못 입력한 경우에 발생하는 예외 - 사용자의 잘못으로 발생하는 예외를 대표함. 💡 IllegalStateException 이란? - 사용자가 값을 제대로 입력했으나, 소스코드가 값을 처리할 준비가 안된 경우에 발생하는 예외 ex ) 로또 게임이 종료된 상태에서 사용자가 추가 진행을 위해 금액을 입력하는 경우, 이미 로또 게임 로직이 종료되어 사용자의 입력에 대응할 수 없음 💡 IllegalAccessException 이란? - 오류에 나와있는 해당 클래스를 호출하는 데 에러가 발생한 것이다. - 클래스에 접근이 허락되지 않았다는 의미로 class 앞쪽에 public을 추가하면 해결 가능. - RuntimeException이기 때문..
💡 CentOS 접속 오류 해결 전날까지만해도 DB 서버로 잘 사용했던 vm이 재부팅 후 접속이 갑자기 안됐었음. 구글링을해서 웬만한 해결법을 찾아보았지만 전혀 도움되는게 없었음. 🔎 체크 1 ifconfig 또는 ip addr | grep "inet "을 입력해서 할당된 IP주소를 확인해본다. 하지만 나는 IP를 확인해도 여전히 접속이 되지 않았음.. (고정 IP로 잡혀있지 않은 경우에는 🔎 체크 2 ping 8.8.8.8 이나 ping www.naver.com을 입력해서 통신이 되는지 확인해본다. 나는 여기서 ping이 안됐었다... 🔎 체크 3 VM > Settings..에 들어가서 메모리를 늘려본다. 나는 메모리 설정이 1GB로 되어있어서 2GB으로 늘렸더니 됐다... 메모리가 꽉 찼었나보다. +..
💡 PKCS#12란? (개인 정보 교환 표준) - 사용자의 개인정보(사용자의 개인 키, 인증 등 pfx)의 저장과 교환을 위한 포맷이다. - 암호화를 사용하는 디지털 인증서가 포함된 파일 - 바이너리 형식으로 저장되며 하나 또는 다수의 인증서, 개인 키 내용을 하나에 모두 담고 있는 키스토어 파일이다. - 보통 .pfx 또는 .p12 등의 확장자로 저장된다. - PKCS#12 포맷의 파일은 인증서, 개인 키 내용을 파일 하나에 모두 담고 있다. - 백업 또는 이동용으로 주로 사용된다. 💡 pfx란? - PKCS#12 바이너리 포맷의 인증서 스토어 - 개인 키, 서버 인증서, 루트 인증서, 체인 인증서를 모두 담을 수 있어 SSL 인증서 적용이나 이전 시 편리하다는 장점이 있다. - pfx는 인증서라기보다..
💡 메모리 구조 프로그램이 실행되기 위해서는 프로그램이 메모리에 로드(load)되어야 한다. 메모리에 올라가지 않은 상태는 그저 소스 코드 덩어리일 뿐이다. 메모리가 올라간다는 것은 코드의 부분부분에 메모리가 할당되는 것이다. → 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 각각의 메모리 공간은 상호작용하며 프로그램 실행에 기여한다. 1) 코드(code) 영역: 실행할 프로그램의 코드 2) 데이터(data) 영역: 전역 변수, 정적(static) 변수 3) 스택(stack) 영역: 컴파일 타임에 크기가 결정됨 4) 힙(heap) 영역: 런타임시 크기가 결정됨(동적할당) 💡 컴파일 타임 사람이 작성한 소스코드를 컴퓨터가 해석할 수 있도록 기계어로 변환시키는 과정을 컴파일이라고 ..
💡 레지스트리란? - 윈도우에서 사용하는 설정 및 정보를 저장하는 데이터베이스 - 모든 하드웨어, 소프트웨어, 사용자 PC 선호도와 같은 정보와 설정이 들어있다. - 사용자가 제어판, 파일 연결, 시스템 정책 등을 변경하면 변경 사항을 기반으로 레지스트리에 반영된다. - 레지스트리 이전에 ini 파일이 사용되었다. 💡레지스트리의 구조 - 레지스트리는 키, 값을 포함하고있다. 키 : 폴더 값 : 키 안에 들어있는 이름 / 자료 - 값은 여러 키로부터 따로 참조할 수 있다. - 값 이름에는 백슬래시(\)를 사용할 수 있지만 키 경로와 구별하는 것이 어려울 수 있어 지양해야한다. 🔎 레지스트리 값 종류 목록 0 REG_NONE 종류 없음 1 REG_SZ 문자열 값 2 REG_EXPAND_SZ 확장할 수 있는 ..
💡 프록시(Proxy)란? - 클라이언트가 자신을 통해 다른 네트워크로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램 - 서버 ↔ 서버 사이의 중계 역할 🔎 프록시를 사용하는 이유 보안상의 이유로 직접 통신할 수 없는 두 서버 사이에서 대리로 통신을 수행하여 보안, 성능, 안정성이 향상된다. 💡 Forward Proxy(포워드 프록시) - 클라이언트 바로 뒤에 놓여있는 구조 - 같은 내부망에 존재하는 클라이언트의 요청을 받으면 인터넷을 통해 외부 서버에서 데이터를 가져와 클라이언트에게 응답 1. 클라이언트가 타겟 서버의 주소를 프록시에 전달 2. 포워드 프록시가 인터넷으로 요청된 내용을 클라이언트에게 응답 ex: naver.com 을 요청하면 포워드 프록시 서버가 naver.com 리소스를 대..
💡 웹 서버(WEB) - 작성된 HTML 페이지가 네트워크 망에 종속되지 않고 웹 서비스를 할 수 있도록 구축되어있는 정적 서버 - 웹 브라우저 클라이언트로부터 HTTP 요청을 받고 HTML 페이지를 반환 - 단순 HMTL, CSS, JS, 이미지, 파일 등을 즉시 응답한다. ex: Apache 💡 WAS(웹 애플리케이션 서버, Web Application Server) - DB 조회나 다양한 로직 처리가 필요한 동적 서버 - HTTP 프로토콜을 통해 사용자 PC나 장치에 애플리케이션을 수행해주는 미들웨어 - JSP, Servelt 구동환경 제공 - 웹 컨테이너 또는 서블릿 컨테이너라고도 불린다. ex : tomcat 웹 컨테이너 : 웹 서버가 보낸 JSP, PHP 등의 파일을 수행한 결과를 다시 웹 서..
서버가 클라이언트에게 이벤트를 보낼 수 있는 4가지 방법이 존재한다. Polling - 클라이언트가 http request를 서버로 계속 날려서 이벤트 내용을 전달받는 방식 - 가장 쉬운 방법이지만 클라이언트가 많아질 수록 과부하가 올 수 있음 - http 오버헤드 발생 가능성 존재 - ex : js에서 setTimeout이나 setInterval 등을 사용할 수 있음 오버헤드(over head) : 처리 시간 및 메모리 등이 추가적으로 사용되는 현상 - 오버헤드가 있기에 정보 전송의 신뢰성을 높일 수 있고 안정적으로 운용을 가능케함 long-polling - 서버 측에서 접속을 열어두는 시간을 길게하는 방식 - 일반 polling보다는 서버의 부담이 줄어들 수 있지만 다수의 클라이언트에게 동시에 이벤트..