본문 바로가기

Language

NPM 시작 1. 플래그란? --version , -v, --save-dev 이런 -(middle hyphen) 사용한 명령어들을 플래그라고 한다. 2. NPM 시작 이제 우리가 쓸 모듈들을 설치해주고, 관리해주는 NPM을 깔아 보겠다. 우리가 NPM을 깔려는 파일을 선택하고, 그 파일 밑의 터미널에서 해당 명령어를 치면 된다. 명령어 npm init, npm init -y npm init 만 치게 된다면, 그 후 우리는 우리가 설치한 NPM의 메타 데이터 정보를 따로 적어줘야 한다. 이러한 과정이 싫다면, npm init -y를 치면 된다. 이렇게 하면 메타 데이터 정보 적는 과정을 생략한다. 3. NPM의 내부구조 (1)전체 구조 우리가 NPM을 깔면 밑과 같은 구조가 된다. 여기서 package-lock.jso.. 더보기
NPM이란? Package는 Module이라고도 불리며, 프로그램보다는 규모가 작은 기능들을 의미한다. NPM이란 Node Package Manager의 약자로, 웹에서 Packager들을 다운받아서 설치 해주고, 관리 해주는 툴을 말한다. 우리는 집을 짓고 싶다. 하지만 나무 판자와 돌맹이, 철만 있다고 해서 집을 지을 수 없다. 집을 짓기 위해 필요한 굴삭기, 지게차, 망치, 톱 같은 것이 있어야 한다. Module은 이러한 굴삭기, 지게차, 망치, 톱 같은 것이고, NPM은 이런 것들을 받아다 관리해주는 친구라 생각하면 편하다. 더보기
Runnable runnable도 Thread와 마찬가지로 병렬 수행을 하기 위한 것이다. 둘의 차이는 다음과 같다. Thread는 클래스이고 runnable은 인터페이스란 것이다. 단일 상속 원칙에 따라 Thread를 상속한 자식 클래스는 다른 부모 클래스를 상속하지 못하지만, runnable를 구현한 클래스는 병렬처리 기능을 쓰면서 다른 클래스나 인터페이스를 장착할 수 있다. 1. 코드 리뷰 import Chap_12.clean.CleanRunnable; public class _02_Runnable { public static void main(String[] args) { // 쓰레드를 만드는 방법 2가지 // 1. Thread 라는 클래스 상속해서 만들기 // 2, Runnable 이라는 인터페이스 구현해서 만.. 더보기
Thread 1. 용어정리 (1) 프로그램이란? 특정 작업을 수행하기 위해 만들어진 기계. (가동 안하는 상태, 죽은 상태) (2) 프로세서란? 작동하는 상태의 프로그램을 일컫는 말 (가동 중인 상태, 살아있는 상태) (3) 쓰레드란? 프로세서를 작동시키고 있는 녀석으로, 특정 작업을 수행중 (기계를 돌리고 있는 인부) (4) 프로세스란? 프로그램이 들어와 작업을 처리하는 공간. 보통 설정 안하면, 하나의 프로세스에 하나의 쓰레드만 존재한다. 프로세스에 여러 개의 쓰레드를 돌려서 프로그램들이 병렬 처리 되도록 할 수 있다. (하지만 이게 진짜로 일이 동시에 진행되는 것이 아니라, 두 가지 일이 순차적으로 처리되고 있지만, 그 둘이 스위칭 하는 게 나노미터 초로 이루어져서, 사람들 눈에는 그게 병렬 처리 하는 것처럼 .. 더보기
Throws (예외 처리 미루기) Throws 해당 매소드에서 일어날 수 있는 예외를 자체적으로 해결 안하고, 나 몰라라 하고 밖으로 던지는 명령어 매소드를 호출한 쪽에서 문제를 해결해야 한다. 책임전가하는 명령어 매소드를 호출한 쪽에서 또 throws 쓰면, 그냥 프로그램 퍼져도 책임 안 지겠다는 소리임. import java.io.FileWriter; import java.io.IOException; public class _07_Throws { public static void main(String[] args) { // 호출한 메인 매소드에서 해결하거나, 여기서도 throws로 나몰라라 하거나 // 메인 메소드에서도 throws로 던지면 그냥 문제 생기는 거 감안하고 돌리겠단 소리임. try { writeFile(); } catc.. 더보기
사용자 정의 예외 예외를 항상 throw new Exception(" 예외 발생 시 하고 싶은 말"); 로 한다면, 마지막 catch 구문에서 할 일이 너무 많다. Exception이란 특정적이지 않고 모든 걸 포괄하는 예외에 던졌기 때문에, ()안의 말이 아니면 무슨 이유 땜에 예외가 일어났는지 알기도 쉽지 않다. 따라서 우리가 직접 특정 순간에만 작동하는 예외 클래스를 만들고 그 예외 객체를 이용하여 예외 처리를 할려고 한다. public class _06_CustomException { public static void main(String[] args) { // 사용자 정의 예외 int age = 17; try { if(age < 19){ // System.out.println("만 19세 미만에게는 판매하지 않습.. 더보기
Try with Resources 1. 설명 AutoClosable이란 인터페이스를 구현한 클래스의 객체를 try구문 ()안에서 생성 했을 때를 가정한다. 해당 객체가 try catch 구문을 다 지나갔으면, try 구문이 자동으로 close 매소드를 호출하여 close의 기능을 수행하게 한다. 해당 스킬은 클래스가 AutoClosable이라는 인터페이스를 구현 해야만 쓸 수 있다. 2. 코드 리뷰 import java.io.BufferedWriter; public class _05_TryWithResources { public static void main(String[] args) { // close 구문도 예외처리가 필요해서 // try-catch-finally 구문 속에 또 try catch 구문이 들어간 걸 볼 수 있다. MyF.. 더보기
Finally 구문 1. 설명 예외 구문에서 문제가 발생하건 말건 예외처리 후 무조건 실행해야하는 코드를 적어 놓는 구문 2. 코드리뷰 public class _04_Finally { public static void main(String[] args) { try{ System.out.println("택시의 문을 연다."); throw new Exception("휴무 택시"); // System.out.println("택시에 탑승한다."); // 예외를 던지는 문장 주석 처리 하고 택시를 탑승한다는 정상 출력문이 나와도 finally 구문 실행 } catch (Exception e) { System.out.println("!! 문제 발생: " + e.getMessage()); } finally { System.out.pri.. 더보기