전체 글(42)
-
Spring의 핵심가치
이 글은 인프런의 김영한님의 spring강의를 보고 정리한 내용입니다. Spring의 핵심가치에 대해 알기전에 왜 탄생했는지 부터 간단히 보자. Spring의 탄생배경 스프링이 만들어지기 전 개발자들은 EJB(Enterprise Java Beans)를 사용했었다. 이 당시 자바 진영의 표준 기술이였고 transaction,분산, orm기술까지 모두 가지고 있었다. 하지만 비쌋고 무엇보다 어렵고, 복잡하고 느렸다. 오죽하면, POJO(Plan Old Java Object) 즉, 옛날에 사용하던 기술을 사용하자는 말까지 나왔을 정도이다. EJB를 사용하던 개발자들은 답답함에 Hibernate 추후에 JPA가 되는 ORM을 오픈소스로 만들었고 또 J2EE라는 책이 유명해지면서 해당 예제코드를 바탕으로 스프링이..
2021.10.23 -
[네트워크] TCP 3-way handshake과 4-way handshake
네트워크를 4계층으로 나눌때 network interface 계층, internet계층, transport계층 과 application계층으로 나눠집니다. TCP는 이 4계층중 transport 계층의 대표적인 protocol인 TCP와 UDP중 하나입니다. TCP란 웹이나 email같이 데이터가 정확하게 전달되어야 하는 통신에서 사용됩니다. 연결지향 protocol즉, 통신을 맺고 끊는 과정에서 client와 server 간의 확인 절차를 거칩니다. 3 way hand shake 연결 성립(Connection Establishment) 커넥션을 맺을때 3단계로 진행됩니다. 1. Client는 Server에 접속 요청을 하는 sync패킷을 보냅니다. 2. 이후 서버는 요청 수락을 하고 server는 sy..
2021.10.17 -
[Node] Buffer와 Stream
사실이 개념들은 자바를 사용하면서 많이 듣고 또 쓰던 개념이라 익숙하지만 노드에서 비슷하지만 조금은 또 다른 느낌이기도 하고 배운것들을 다시 한번더 정리해보고자 적는다. 나중에 JAVA buffer와 stream도 다시 봐야겠다. 정리를 안하니 슬슬 헤깔린다. Buffer 이 단어 우리가 많이 듣던 버퍼링이란 단어와 비슷하지 않은가? 사실 그 단어가 맞다. 버퍼링은 영상재생까지 데이터를 모을때 쓰는 단어이다. 버퍼란 파일 읽을때 메모리에 파일 크기 만큼 공간을 마련해 파일 데이터를 저장하고 이 저장된 데이터가 버퍼인것이다. 하지만 이 버퍼에도 큰 문제점이 있습니다. 용량이 아주 큰 파일을 읽어야 하는 상황이 오면 그만큼 큰 버퍼를 만들어야 하는데 이 상황이 계속되면 메모리 문제가 발생할 수 있습니다. 그..
2021.10.09 -
Node.js 동작원리
Event-Driven(이벤트 기반) 이벤트(클릭, 또는 네트워크 요청 등) 발생시 미리 지정해둔 작업을 수행한다. 이렇게 하기 위해 특정 이벤트 발생시 무엇을 할지 미리 등록을 해놓는다. (Event listener에 callback함수 등록) 우선 정확한 구조를 보기 위해 용어들 부터 간략하게 설명해보자. Call Back함수: 다른 함수의 인자로 넘겨지는 함수 및 어떤 이벤트에 호출되어지는 함수이다. Event Loop: 이벤트 발생시 호출할 call back 함수 관리 및 호출된 call back 함수 실행 순서 결정. Node가 종료될때까지 이벤트 처리 작업을 반복한다. Background: event listener가 대기하는곳이다. Task Queue: 이벤트 발생후, 백그라운드에서 task..
2021.10.08 -
스크립트 언어(Script Language)
처음에는 스크립트언어와 비스크립트 언어의 차이를 느끼지 못하고 있었다. 그 뿐 아니라 뭐가 스크립트 언어이고 아닌지도 몰랐다. NodeJS를 배우게 된 지금에서야 제대로 찾아보게 됬다. 스크립트언어 스크립트언어는 Java 나 C++같은 compiler를 통해 기계어로 번역해야 사용자가 실행할 수 있는 파일이 만들어 지는 시스템과는 다르게 별도의 번역기가 소스 분석 후 동작하게 하는 언어이다. 그래서 바로 결과를 확인할 수 있다는 장점이 있다. 하지만, 번역과정 때문에 약간 느린편이다. C언어나 Java의 경우 실행속도는 빠르지만 컴파일 과정에 개발과정이 복잡하다.
2021.10.04 -
동기/비동기 와 블록/논블록
처음 이 단어들을 접했을 때 이게 대체 뭔소리인가 싶었다. 책으로 자바스크립트 부터 공부중인데.. 와 이게 진심 무슨 소리지 난 진짜 기초가 부족하구나.. 싶었다. 그치만 다른 영상들과 블로그들을 보면서 차츰 이해가 가기 시작해 또 까먹고 다시 찾기 싫어 정리해본다. 블록킹(blocking)과 논블록킹(non-blocking) -한 함수에서 다른 함수를 호출했을때 제어권이 다른 함수로 넘어가게 되는데 만약 그 함수에서 모든 일을 마친 후에 제어권을 반환하면 blocking 이라고 할 수 있다. - 반면, non-blocking의 경우 함수 호출시 제어권을 넘겨준 후 바로 다시 제어권을 반환한다. (할 일이 끝나기전) 동기 (Synchronouse)와 비동기(Asynchronouse) 우선 blocking..
2021.10.04