본문 바로가기

Dev.BackEnd

(66)
#자바가상머신, JVM(Java Virtual Machine)이란 무엇인가? #JVM이란?JVM이란 JAVA Virtual Machine, 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다 (가상머신이란 프로그램의 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것이다.) JVM 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것이다. 그리고 JVM은 JAVA와 OS사이에서 중개자 역할을 수행하여 JAVA가 OS에 구애받지 않고 재사용을 가능하게 해준다. 그리고 가장 중요한 메모리관리, Garbage collection을 수행한다. 그리고 JVM은 스택기반의 가상머신이다. ARM 아키텍쳐 같은 하드웨어는 레지스터 기반으로 동작하는데 비해 JVM은 스택기반으로 동작한다. 왜 자바 가상머신을 알아야 하는가?한정된 메모리를 효율적으..
[JAVA] 2. JAVA와 객체지향 / 객체란? 클래스란? 인스턴스란? 생성자란? Chapter 2. 객체지향 프로그래밍(Object-Oriented Programming)객체지향적인 프로그래밍이란 어떤 프로그래밍을 말하는가?객체란 무엇이며, 객체를 이야기할 때 나오는 클래스, 인스턴스란 무엇인가? 객체란 주변에 존재하는 모든 사물, 생명체를 의미한다.객체지향에 대해서 집중적으로 다루는 포스팅에서 좀 더 객체지향에 대해서 알고,자바에서의 객체지향이란 무엇을 말하는가를 집중적으로 알아보겠다.객체지향에 대해서 집중적으로 다루는 포스팅으로 이동하기 객체를 이루는 것은 데이터와 기능이다. 객체를 생성하기에 앞서 객체의 생성을 위한 틀을 먼저 만들어야 한다. 그리고 그 틀은 클래스를 의미한다. 클래스의 구조는 우선 변수를 선언하고 그 안에 메소드를 정의하는 형식이다. 클래스는 설계도라고 할 수..
[JAVA] 1. Java 기초적인 문법 / 코드 구성요소 Chapter 1. Java 기초적인 문법 / 코드 구성요소 컴퓨터 사이언스 공부를 시작할 때, C가 운영체제, 네트워크와 같은 기초적인 과목들이라면 웹이라는 분야에서의 JAVA도 그 기초와 같다. 그 시작, 이클립스(Eclipse)JAVA를 프로그래밍하기 위해 필요한 도구 중 하나인 IDE의 일종이다.package Explorer : 프로젝트 관리 Outline : 문법적인 요소들을 시각적으로 보여준다. 자신이 필요한 것을 빠르게 찾을 수 있도록 도와준다.Problem : 에러 상황 보고 Console : 말 그대로 콘솔창 그리고 가운데 Editor!프로젝트를 만들고, 패키지를 생성하고, 클래스를 생성하여 컴파일을 하게 되면, 워크스페이스(WorkSpace)에 두 개의 폴더가 생성된다.bin : bin..
[JAVA] 0.1 Java Coding Guideline Java Coding Guidance패키지를 표현하는 이름은 모두 소문자를 사용변수의 이름은 소문자로 시작하며 대소문자를 혼용한다.상수를 표현하는 이름은 모두 대문자로 지정하되 '_'로 단어들을 구분한다.메소드의 이름은 동사를 사용하며 소문자로 시작한다.private 접근 제한자를 갖는 클래스 변수에 '_' 접미사를 사용한다.일반적인 변수의 이름은 타입의 이름과 동일하게 작성한다.넓은 범위에 영향을 미치는 변수는 긴 이름을 부여하고, 좁은 범위의 변수는 짧은 이름을 부여한다.찾는 메소드(find), 계산하는 메소드(compute), 초기화(initialize), 엔터티 번호(No접미사)대응하는 단어가 있는 이름은 함께 사용한다.(get/set, add/remove, create/destroy, start..
[JAVA] 0. 자바(JAVA)란 무엇인가? JAVA출신배경Java는 Sun Microsystems가 1995년에 처음 출시한 프로그래밍 언어이다.제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.기존의 WWW가 가지고 있던 한계 극복의 필요성으로 탄생하게 되었다. 특징자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환한다.변환된 바이트 코드를 실행하기 위해서는 JVM(자바 가상 머신)이라는 특수한 가상머신이 필요하다.이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다.때문에 자바로 개발된 프로그램은 CPU나 운영체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템 어디서나 실행할 수 있다. 분산환경을 지원한다자바에는 TCP/IP 라이브러리가 기본적으로 포함되어..
[열두번째] Node.js Authentication / Passport JS (포스팅에 앞서 이 포스팅은 생활코딩 강의를 듣고 만든 포스팅임을 밝힙니다.) 웹 사이트를 만드는데 있어서 가장 중요한 부분인 '인증'에 대해서 포스팅 하고자 한다.궁극적으로는 Facebook을 사용하여 로그인을 하는 방법을 구현하였다.Federation Authentication 이라고 부른다.요즘 대부분의 웹 사이트에서는 사용자의 정보를 갖고 있는 것이 적잖이 부담스러워 이 방식을 사용한다.이를 구현하기 위해 passport 모듈을 사용하였다. 사용자의 패스워드를 암호화하여 저장하는 방식에는 md5, sha256 등 많은 모듈이 있지만그 하나 하나를 다루지 않고 passport 모듈을 이용한 방법을 소개하고자 한다.passport 모듈을 사용하면 여러 인증방식을 통합할 수 있다.결국엔 session ..
[열한번째] Node.js & MySQL 연동하여 간단한 웹 애플리케이션 사이트 만들기(스압) 10개의 포스팅으로 정말 Node의 기초와 프레임워크 express 기초에 대해 알아봤다.이 기초를 이용하여 관계형 데이터베이스(RDB) 중 가장 보편적으로 사용되고 있는MySQL을 연동시켜서 간단한 애플리케이션을 만들어보자.데이터 베이스 관련 포스팅은 추후 올라갈 예정이다.(본 포스팅은 생활코딩 수업의 내용을 바탕으로 하고 있습니다.) 기본적인 원리는 express로 라우팅을 해주면서 필요한 요소요소에 데이터베이스를 연동하여필요한 정보를 불러오고 사용자로부터 받은 정보를 저장하는 것이다. express 함수를 호출한다.express 함수를 다루기 편하게 app이란 객체로 객체화express 내장 모듈인 fs 모듈도 호출.mysql module 도 호출.mysql.createConnection()을 통해..
[열번째] Node.js 기본 / 클라이언트와 서버의 의사소통 방식 (GET & POST) II Post방식app.post('/form_receiver', function(req,res){ var title = req.body.title; var description = req.body.description; res.send(title+','+description);});res.send에 해당하는 부분이 /form_receiver에 출력될 것을 기대할 수 있다.그런데 에러가 뜬다.TypeError: Cannot read property 'title' of undefinedbody 가 존재하지 않는다고? API를 보니까Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is pop..