목록먹고살자/IT knowledge (11)
carrots-day
저장소 웹 개발시 가장 비슷하면서 상이한 개념이 세션, 캐시, 쿠키, 토큰이다. 토큰은 저장소가 아니기 때문에 이글에 적기 뭐하긴 한데 그래도 간지나니 같이 쓰겠다. 사실 나도 명확하게 얘기하라고 하면 일부는 어버버될 것 같다. 이 글에서 정홝히 뿌서본다. 와다! HTTP 특성 저장소별 차이를 보러 왔는데 웬 HTTP 특징을 떠드나 싶을 것이다. 해당 저장소를 사용하는 이유에 대해 이해하기 위해 필요로 하다. 가장 대표적인 특징인 무상태성과 비연결성 때문이다. 무상태성 (Stateless) 클라이언트와 데이터를 주고 받아도 다음 연결시 이전 데이터를 유지하지 않음 비연결성 (Connectionless) 요청에 대한 응답 이후 클라이언트와 연결을 끊는 방식을 사용 👽 다음의 특성 때문에 정보가 유지 되지 ..
BMT와 POC 난 실무를 하며 각 BMT와 POC 심사를 끌려간 적이 많았다. 근데 끌려 다니면서도 '누군가 BMT와 POC의 차이가 뭐에요?' 라고 물어보면 대답할 수 없었다. 보통 둘다 제품 판매를 위한 시연 자리였던거 같은데 패트와 매트마냥 뭐가 뭔놈인지 확실히 구분하지 못했다. 그런 참에 간단하게 요약해보겠다. BMT (Bench Marking Test) 일반적인 성능 시험과 달리 실제와 같은 환경에서 여러 개의 제품의 성능에 대해 비교 시험을 반복해 성능을 객관적으로 평가하는 것 한마디로 입찰에 응한 업체 제품의 성능을 비교하는 것이다. 이것 저것 테스트해보고 비교해보는 시연회같은 느낌이다. POC (Proof Of Concept) 새로운 프로젝트가 실제로 실현 가능성이 있는가, 효과와 효용,..
RFP란 직역하면 제안요청서로 발주자가 특정 과제의 수행에 필요한 요구사항을 체계적으로 정리하여 제시함으로써 제안자가 제안서를 작성하는데 도움을 주기 위한 문서 쉽게 말해 '우리 이런 시스템 구축할라 그러는데 너네 이거 돼요?' 하는 항목을 정리한 문서다. 과거, 일을 하다보면 RFP 문서를 받고 제안서를 쓸때가 있다. 과거 내가 일했던 회사에선 기술 영업 파트가 있었지만 사실상 접대 영업 방식이었다. 기술 영업이라면 RFP문서를 확인하고 기존의 기능으로 커버가 가능한지, 추가적으로 개발이 필요한지, 필요하다면 소요가 얼마나걸리는지를 운영/개발팀과 협의해서 진행하는 것이 일반적이라고 생각하는데 처음부터 끝까지 확인해서 넘겨줬다. (내 일이 아니라고 생각하는건 아니지만 어떻게 자사 제품 기능을 몰라서 이걸..
URL (Uniform Resource Locator) 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약으로 위치 정보 문자열, 즉 웹 리소스에 대한 주소이다. 그냥 우리가 흔히 아는 웹 주소를 의미한다. 여러분이 오덕이라고 가정했을 때 야애니 피규어 사진을 다운로드한다 치자. 웹 서버는 입력된 URL을 통해 해당 사진을 찾아 당신의 브라우저로 보내줄 것이다. 이때 그 리소스에 대한 주소를 말한다. URL 구조 scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] scheme : 프로토콜 (http 또는 https) user와 password : 리소스 접근시 로그인이 필요한 서비스의 경우 사용자 id / pw host와 port ..
IT 실무 용어 IT는 참 이상하다. 개발 기술 자체는 명확한데 개발자들끼리 커뮤니케이션하다보면 말하는 방법도 다르고 단어도 다르다. 그래서 정리해봤다. 간지나는 실무 용어 정리다. 자료조사와 생각나는대로 이 게시글에 정리해볼 생각이다. 인프라 인프라 IT 리소스, 시스템, 플랫폼, 환경을 제어하는 인력으로 대부분 하드웨어나 CI/CD 관리를 한다. DevOps Development + Operation 개발과 운영을 결합해 탄생한 개발 방법론으로 개발 운영 둘다 하란 뜻이다. 컴파일 컴파일이란 소스 A > B로 변환하는 작업을 말한다. 우리가 Java, C#로 코드를 짜봤자 컴파일이 없다면 컴퓨터는 해당 소스를 실행시키지 못한다. 한마디로 기계어로 변환하는 작업을 말한다. 인터프리터 인터프리터는 프로그..
Node.js Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다. 공식 문서에서 말하는 Node.js다. 늘 그렇듯 간지나는 말로 도배되있을 뿐, 찰떡같이 이해되지 않는다. 손 많이 가는 녀석들.. 나름대로 요약해보면 Node.js는 확장성이 있는 네트워크 어플리케이션 개발에 사용되는 소프트웨어 플랫폼으로 javascript를 활용하여 구축하며, Non-blocking I/O와 단일 스레드, 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 것이 특징이다. 쉽게 말해 백엔드 소스를 포함하고 있는 일반 어플리케이션보다 경량화되어있고, JAVA가 JVM을 활용하여 운영체제의 영향없이 런타임을 구성하듯 V8 엔진 베이스 javascript 런타임 환경을 구성..
동기/비동기 처리 javascript는 기본적으로 싱글 스레드 엔진을 기반으로 실행되기 때문에 기본적으로 동기 처리되어 작성한 순서대로 수행된다. 하지만 소요가 큰 작업이 수행되면 어떨까? 선행 코드가 수행되기까지 기다려야한다. 선행 여부와 관계없이 수행할 수 있는 기능이 바로 비동기처리이다. javascript에서 코드를 실행시킬때 방식은 2가지로 분류할 수있다. 동기처리 방식과 비동기처리 방식이다. 다음 그림이 동기와 비동기의 차이를 명확하게 해준다. 동기처리 : 서버에 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다. 비동기처리 : 서버에 요청을 보냈을 때 응답 여부와 관계없이 다음 동작을 수행 할 수 있다. 대표적으로 setTimeout과 AJAX가 있다. 쉽게 말해 실행 시점의 차..
실행 컨텍스트 (Execution Context) javascript 코드가 실행되는 환경 또는 연산 범위를 나타내는 추상 영역 실행 컨텍스트는 말만 가지나게 썼을 뿐, 개발자가 작성한 코드가 실행되기 위한 환경을 구성한 컨테이너다. 쉽게 말해서 우리가 계란 후라이를 하기 위해 가스 레인지와 프라이팬이 필요한 것 처럼 코드를 실행시키기 위해 선언해놓은 변수, 함수를 설정해놓고 실행시키는 개념이라 보면된다. 앞서 javascript 런타임 엔진은 Heap과 Stack 영역으로 구성된다는 것을 알고있다. 그럼 그 Stack에 실행될 코드가 어떤 구성으로 적재되는지 알아보겠다. 실행 컨텍스트 분류 개발에서는 어떤 개념이 존재하면 항상 분류가 나뉜다. 그래서 피곤하지.. 실행 컨텍스트도 2가지로 분류할 수 있다..