[CS] 웹소켓이란? (브라우저와 브라우저를 연결하는 RTC?)
·
과거의 이력/CS
HTTP 에 관한 글은 아래를 참고하면 된다. https://pro-jm.tistory.com/81?category=1119368 [CS] HTTP란? 📝HTTP란? Hyper Text Transfer Protocol라는 뜻으로 웹에서 데이터를 주고받울 수 있는 네트워크 프로토콜이다. 여기서 프로토콜은 규칙이라고 보면 된다. 이렇게 네트워크 규칙을 정해둠으로써 모든 pro-jm.tistory.com 웹소켓 이전에 HTTP에 대해 간단히 요약하자면, 브라우저에서 서버로 데이터를 요청할때 HTTP 방식을 활용한다. 단 해당 방식은 클라이언트 단에서 서버로 요청을 하고, 서버에서 클라이언트로 응답을 하는 방식이다. 클라이언트에서 요청이 없다면 서버에서는 클라이언트로 스스로 응답을 보내지 않는다. 따라서 HTT..
package-lock.json 이란 무엇일까?
·
과거의 이력/프론트엔드
프로젝트에서 미사용 패키지를 정리하면서 문득 package-lock.json이 정확히 어떤 역할을 하는지 궁금해졌다. 따라서 package-lock.json에 대해 정리해보려고 한다. package-lock.json 파일은 언제 생기는걸까? 새로운 패키지를 설치하면 package.json 파일에 해당 패키지의 버전 정보가 저장된다. package-lock.json은 mode_modules 폴더나 package.json 이 수정되고 생성될 때 자동으로 생성된다. package-lock.json 에는 의존성에 대한 정확하고 구체적인 정보를 담게된다. 즉, npm install 명령어를 수행할때 생성되는 파일인 것이다. 이렇게 package-lock.json 이 생성되면 npm install 명령어로 생성하는..
[CS] HTTP란?
·
과거의 이력/CS
📝HTTP란? Hyper Text Transfer Protocol라는 뜻으로 웹에서 데이터를 주고받울 수 있는 네트워크 프로토콜이다. 여기서 프로토콜은 규칙이라고 보면 된다. 이렇게 네트워크 규칙을 정해둠으로써 모든 프로그램이 해당 규칙에 맞추어 정보 교환을 가능하게 하는것이다. 나는 웹 개발자로서 클라이언트와 서버간 데이터를 전송해야하기에, 가장 중요한것중 하나인 HTTP에 대해 정리하려고 한다. (데이터 통신시 CORS, CORB와 같은 에러들도 해당 지식만 잘 안다면 충분히 해결이 가능하다) http는 주로 80번 포트를 사용하여 서비스가 된다. 반면 https는 보안이 강화된 프로토콜로 기본 443 포트를 이용한다. 쉽게 정리하자면, 내 컴퓨터에서 서버로 데이터를 요청할때 HTTP 형식임을 주소창..
[컴퓨터구조] 캐시란? 레지스터란? 버퍼란?
·
과거의 이력/CS
컴퓨터에는 다양한 기억장치(= 메모리)가 있다. 그 종류는 RAM, 캐시, 레지스터 등 이 있다. 메모리의 계층 구조는 다음과 같다. RAM은 아래 링크에 정리해두었다. https://pro-jm.tistory.com/78 [컴퓨터구조] RAM이란 무엇인가? DRAM과 SRAM의 차이 (캐시메모리) 📝램(RAM)이란? 컴퓨터에서 어떤 작업을 실행할때 모든 프로그램에 대한 데이터를 저장할 공간이 필요하다. 일반적으로 이러한 작업은 하드디스크(HDD)에 저장된다. 하지만 CPU의 속도를 HDD가 pro-jm.tistory.com 📝 레지스터와 캐시메모리와 버퍼 📌레지스터란? CPU 안에 자리하고 있는 메모리로 일반 메모리보다 훨신 빠른 속도로 접근할 수 있는 고속의 기억장치이다. 레지스터는 CPU가 요청을 ..
[컴퓨터구조] RAM이란 무엇인가? DRAM과 SRAM의 차이 (캐시메모리)
·
과거의 이력/CS
📝램(RAM)이란? 컴퓨터에서 어떤 작업을 실행할때 모든 프로그램에 대한 데이터를 저장할 공간이 필요하다. 일반적으로 이러한 작업은 하드디스크(HDD)에 저장된다. 하지만 CPU의 속도를 HDD가 따라오기엔 너무 느리기에 RAM이라는 장치가 탄생했다. 램이란 CPU와 하드디스크 사이에 또하나의 특별한 기억장치라고 생각하면 된다. 📝램 특징 램이란 전원이 끊어지면 휘발유처럼 기록된 정보가 날아가기 때문에 휘발성 메모리라고 한다. RAM은 컴퓨터의 주기억장치로 사용된다. 대표적인 RAM 종류에는 DRAM(dynamic)과 SRAM(static)이 있다. 📌DRAM DRAM은 축전기로 작동하는 방식이다. 축전기란 시간이 지나면서 방전된다는 것이다. 즉 시간의 흐름에 따라 메모리가 변화한다는 뜻이다. 때문에 동..
[ag grid] 키보드이벤트 제어하기, 선택 범위 재 지정하기
·
과거의 이력/[그리드] ag-grid
vue.js로 작업한 내용 기반으로, 전역변수 사용을 위해 this.를 사용하였다. 바닐라 js사용시 해당부분 참고하면 된다! 셀 내에서 ctrl + a 이벤트가 발생했을때 셀 전체선택이 아닌, 내가 원하는 범위를 재지정 해야하는 필요성이 있었다. 이를 위해 키보드이벤트 제어와 범위 재조정 API 가 요구된다. 1. 기본 옵션 셋팅 - gridOptions 기본 그리드 옵션 지정을 위해 gridOptions에 셋팅을 해야한다. defaultColDef라는 변수를 만들어 defaultColDef옵션에 해당 변수를 셋팅한다. this.gridOptions = { columnDef: this.columnDefs, rowData: this.rowData ... defaultColDef: this.defaultC..
[Java] HashMap 배열의 타입? (java.util.ArrayList cannot be cast to [Ljava.lang.String)
·
과거의 이력/JAVA
프론트와 서버간 데이터를 통신할때 다음과 같은 에러가 발생했다. java.util.ArrayList cannot be cast to [Ljava.lang.String 프론트에서 ['a', 'b'] 와 같이 배열타입을 넘겼을때 Java에서 발생한 에러이다. java에서 HashMap로 값을 받을때 해당 배열은 ArrayList로 받아진다. 자동으로 데이터 통신시 해당 데이터 타입을 ArrayList로 타입캐스팅을 하는것이다. 처음에 String[] 타입으로 데이터를 받으려고 하니 타입미 맞지 않아 에러가 발생한 것이다. 따라서 다음과 같은 방식으로 배열값을 String[]로 변환하였다. 📌 초기 데이터 타입 - ArrayList 📌 최종 데이터 타입 - String[] 💻 XMLHttpRequest(XHR..
[CS] DNS란 무엇인가? (도메인으로 IP를 찾는 원리?)
·
과거의 이력/CS
누군가에게 전화를 걸때 전화번호를 다 외울수가 없으니 이름으로 검색하여 찾는다. 이때 전화번호는 IP, 저장된 이름은 도메인의 개념이라고 볼 수 있다. 여기서 전화번호(IP)와 이름(도메인)을 함께 저장하는 전화번호부가 바로 DNS이다. 📝DNS란? Domain Name System의 약자로 도메인에 관련된 시스템이다. DNS는 네임서버, 도메인 네임서버 라고 불리기도 한다. 도메인이란 www.naver.com 의 주소 중 naver.com 부분을 가르킨다. 여기서 www는 호스트 네임(host name) 이라고 불린다. 📝도메인을 사용하는 이유? 마치 누구에게 연락을 하기위해 전화번호가 필요하듯 웹사이트에 접속하기 위해서는 내 컴퓨터의 브라우저가 내가 접속하고자 하는 서버에 요청을 해 데이터를 받아와야..