static이란? 정지상태, 고정된, 변화가 없는 클래스가 로딩될때 static 선언된 자원들은 JVM(Java Virtual Machine) 에서 메모리에 딱 한번 올라감 (= 즉 Static 변수는 클래스가 사용되기 전 미리 메모리에 올라감) static을 사용하면 객체 생성할 필요없이 공용된 자원을 사용함으로써 메모리를 효율적으로 사용할 수 있지만 무분별한 사용은 프로그램에 악영향을 미침 왜 main 앞에 static이 붙여질까? - 프로그램이 실행될때 인스턴스를 생성하지 않고 바로 실행되어야 하기 때문에 static이 붙는다. class Test { public static void main (String[] args) { System.out.println("실행") } } Static 장단점 1..
1. 동기(Synchronous) vs 비동기(Asynchronous) Q. 동기와 비동기적으로 일을 처리? 빨래, 설거지, 청소를 해야한다. 일처리에 대해서 비유를 해보자 동기 -> 빨래를 한 뒤(1시간), 설거지 한 뒤(1시간), 청소를 해서 일을 끝내는 것(1시간) -> 약 3시간 비동기 -> 빨래 업체한테 맡기고 (1분), 설거지 업체에 맡기고(1분), 청소하는 업체 맡기고(1분) -> 약 3분 - 순서가 중요하지 않다면 비동기적으로 업무를 실행하는 것이 맞다. 동기와 비동기의 차이점은? 함수가 바로 return 되는지 여부 2. 블로킹(Blocking) vs 논 블로킹 (Non Blocking) 블로킹과 논 블로킹? 백그라운드 작업 완료 여부에 나뉘어짐 노드에서는 동기-블로킹방식과 비동기-논블로..
1. Node JS의 소개 - 2009년 Ryan Dahl 처음 소개한 프로젝트 - 자바 스크립트 언어를 응용 프로그램에서도 사용할 수 있도록 만들어내는 프레임워크 - 자바 스크립트를 사용해서 서버용 어플리케이션을 만들 수 있음 * 특징 - 싱글 쓰레드를 기반으로 비동기 I/O 사용 - 이벤트 기반으로 동작하게 됨 - 네트워크 애플리케이션에 적합(디스크, 데이터 베이스와 같은 I/O를 처리해야 하는 일이 많음) - 멀티 쓰레드를 서버를 다루기에는 어려움, 그에 비해서 싱글 쓰레드로 작성하게 되면 서버 만들기에 굉장히 쉬움 - 비동기 I/O를 이용하여 코드작성도 쉽고 , 동기식 I/O가 가지는 기다림이 없는 서버를 만들 수 있음 * 비동기 I/O란? - 시간이 걸리는 I/O? 하드디스크 접근, 데이터베이스..
1. WebRTC? - 웹 브라우저 간에 플러그인 도움 없이 서로 통신할 수 있도록 설계된 API - WebRTC는 P2P 연결을 통해 직접 통신하지만 이를 중계해주는 과정 필요, 많은 양의 통신을 가지는 WebRTC 앱들은 심각한 부하를 다룰 수 있기 때문에 Signaling 서버가 필요함 => 각 디바이스들을 상호간에 동의된 서버(socket.io 혹은 websocket을 이용한 서버)에 연결 - 또한 WebRTC는 시그널링에 대한 부분을 지원하지 않기 때문에 서버에 대해 직접 구현이 필요 이때 Nodejs의 Socket.IO 패키지를 이용하기. 2. signaling - 시그널링 서버는 시그널링 데이터를 몰라도 된다 - 시그널링 데이터 = SDP - SDP를 교환 한 후 두 Peer들은 ICE ca..
들어가기 전에 JSP와 Spring의 차이점은? - JSP - > HTML문서에 내부적으로 자바문법을 사용할 수 있게 하는 스크립트 언어, 화면 처리 영역에서 사용 - Spring Framework -> 다양한 개발 빠르게 적용할 수 있게 만들어 놓은 도구,프로그램전반적환경구성 자바 웹 프로그램 JSP - JSP를 사용해서 Servelet사용, 이후 JSP MVC, Spring MVC로 확장 가능 POST와 GET 방식 차이 POST GET - 숨겨져서(body안에) 보내짐 - 많은 양의 데이터 보내는 것 가능 - 글 작성의 경우 - 수행한다는 것의 개념 - 서버의 상태나 값을 바꾸기 위해서 사용됨 - 주소줄에 값이 ?뒤에 쌍으로 이어붙음 -url에 붙어야 하기 때문에 많은 양의 데이터를 보내기가 어려움..
1. 노드 설치하기 1.1 노드 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org - LTS : 기업을 위해 3년간 지원하는 버전 - Current : 최신 기능을 담고 있는 버전 1.2 yarn 설치 - Node.js. 설치시 패키지를 관리해주는 npm 설치 - 하지만 yarn은 npm을 대체할 수 있는 도구로 npm보다 훨씬 빠르며 효율적인 캐시시스템과 기타 부가 기능 제공 https://classic.yarnpkg.com/en/docs/install/#windows-stable Yarn Fast, reliable, and secure depend..
페이스북 개발팀은 어떤 데이터가 변할 때마다 어떤 변화를 줄지 고민하는 것이 아니라, 기존 뷰를 날려 버리고 처음부터 새로 랜더링하고 싶어했다 "아 차라리 기존 뷰를 날려 버리고 처음부터 새로 랜더링하자!" 이렇게 하면 애플리케이션 구조가 매우 간단하고, 작성해야할 코드 양도 많이 줄어들기 때문에 그래서 페이스북 개발팀이 개발한 것이 React이다! 1. 리액트 - 리액트는 자바 스크립트 라이브러리로 사용자 인터페이스를 만드는데 사용한다. - 리액트 프로젝트에서 특정 부분이 어떻게 생길지 정하는 선언체가 있는데 이를 컴포넌트(Component) 라고 한다. - render() {....} 함수 사용 2. 리액트의 특징 (1) Virtual DOM 사용 - DOM 이란? Document Object Mod..
1. 사이트 들어가기 https://www.dothome.co.kr/index.php 닷홈 - 호스팅은 닷홈 닷홈은 무제한 웹호스팅, 무료호스팅, 도메인, 홈페이지빌더, 무제한메일, SSL보안인증서, 서버호스팅, 코로케이션 서비스를 제공하고 있습니다. www.dothome.co.kr 2. FileZilla 설치하기 https://filezilla-project.org/download.php?type=client Download FileZilla Client for Windows (64bit) Download FileZilla Client for Windows (64bit) The latest stable version of FileZilla Client is 3.47.2.1 Please select th..
1. Express - 서버 제작시 불편함을 해소하고, 편의 기능을 추가한 웹 서버 프레임워크 - 대표적인것 익스프레스, koa, hapi 같은 웹 서버 프레임워크 - 확실히 express가 우세한 경향을 보임 --> 사람들이 많이 사용하는 프레임워크일 수록 에러가 적음 2. Express-generator - Express 프레임워크는 익스프레스 외에도 많은 패키지를 사용하므로 입문자 입장에서는 필요한 패키지를 찾아서 설치하기 어려움 - Express-generator 패키지 --> 프레임워크에 필요한 package.json을 만들어주고 기본 폴더 구조까지 잡아주는 패키지 >> npm i -g express-generator // npm 전역설치 -------------------------------..