목록전체 글 (548)
똑같은 삽질은 2번 하지 말자
목표 자바가 제공하는 다양한 연산자를 학습 TodoList 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 덧셈, 뺄셈 등 산술 연산을 수행하는 연산자 (+, -, %, /, *)가 있다. public class OperatorExample { public static void main(String[] args) { int num1 = 25; int num2 = 5; System.out.println(num1 + num2); // 30 System.out.println(num1 - num2); // 20 System.out...
TodoList 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 프리미티브 타입(Primitive type) Java 언어 내에서 사용할 수 있는 가장 기본적인 데이터 유형으로써 boolean, byte, char, short, int, long, float and double이 있다. 프리미티브 타입은 Java에서 데이터 조작의 기본 블록 역할을 하며, 한 가지 목적으로만 사용됩니다. 즉, 순수하고 단순한 유형의 값을 저장하는데 쓰이는 ..
TODOLISTS JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM 이란 ? Java Virtual Machine 말 그대로 자바 가상 머신으로써 자바 바이트 코드를 운영체제에 특화된 기계어로 변환시키는 표준이자 구현체이다. (바이트 코드가 무엇인지는 .java 코드가 컴파일하고 실행되는 과정에서 설명!) 자! JVM은 그럼 우리가 자바를 사용할 때 어디에 있는 걸까? 그림을 보면 JVM은 JRE(Java Runtime Enviroment) 안에 있는걸 알 수 있는데 그럼 JRE, JDK에 대해 간단하게 알아보자 JRE (Java Runtime Environment): JVM + 라이브러리..
NPM (Node Package Manager) 전세계 자바스크립트 라이브러리가 있는 공개 저장소 nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 우선 Node.js 를 LTS로 다운받자 (LTS가 더 라이브러리가 많다.) -> Node.js 설치시, NPM도 같이 설치된다. 터미널에서 명령어가 잘 먹히는지 확인! $npm init -y // default로 package.json 생성 $npm install jquery // 설치 명령어 자 npm으로 라이브러리를 설치하고 관리하는 파일도 만들어보았다. 근데 왜? npm을 쓰는가? 1. Version & 의존성 ..
1. Physical Layer 모든 파일과 프로그램은 0과 1의 나열 즉, 0과 1만 주고받을수 있으면 컴퓨터간의 통신이 가능 0과 1의 나열을 아날로그 신호로 바꾸어(Encoding) 전선으로 흘려보냄,(아날로그 신호가 아니면 주파수 고정이 불가능) 아날로그 신호가 들어오면 0과 1의 나열로 해석(Decoding) 물리적으로 연결된 두대의 컴퓨터가 0과 1의 나열을 주고받을수 있게 해주는 모듈(module)(Encoder + Decoder) ex) PHY칩, 1계층은 하드웨어 2. Data-Link Layer 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈 Framing은 Data-link Layer 에 속하는 작업들 중 하나이다. ex) 랜카드, 2계층도 하드웨어 3..
SpringBoot + Vue.js 로 RestAPI 방식의 사이드 프로젝트를 하는도중에 로그인 시 할일 목록으로 자동으로 끌고 오도록 해놓았는데, 그때 제대로 끌고 오질 못해서 네트워크 패널을 보니 요청이 두번? 들어가 있었다. 우선 왜 두번인지 부터 해결하고 가야겠다고 생각했고, 열심히 검색해 보았다. 출처 : developer.mozilla.org/ko/docs/Web/HTTP/CORS HTTP CORS 관련 공식문서를 보면 이 요청은 사용자 정의 헤더가 설정되어서 자동으로 preflighted 처리가 된다. 나의 OPTIONS 요청 overview 맞다. 나는 헤더에 토큰값을 실어 보낸다고, 헤더에 임시로 Authorization : (Token 값) 을 추가해 두었는데, 그것 때문에 Simple..
Root Vue 인스턴스 즉, new Vue ({...})를 통해 생성 된 경우, 문제없이 data : {...} 오브젝트 형태를 사용할 수 있다. 왜냐하면 new Vue를 함으로써 새로운 인스턴스를 생성한다는 의미이기 때문이다. 그리고 이 Vue 인스턴스는 SPA라면 하나만 가질 수 있을 것이다. 여기서 문제는 Vue.component (...) or export default {...}를 통해 정의 된 재사용 가능한 구성 요소가 있을 때 인데 이러한 경우에는 data () { return {...}; } 또는 data : function () { return {...}; } 을 사용해야한다. 그 이유는 재사용 가능 구성요소들은 import를 해서 한 부모 컴포넌트에서 재사용 가능한 컴포넌트를 여러개 ..
NullPointException 개발을 하면서 이거때문에 이슈가 정말 많이 일어난다. 지금은 Vue + SpringBoot(Rest API)로 개발을 진행하고 있는데, 아무래도 javascript와 json으로 주고 받다보니 생각지도 못한 곳에 Null이 들어가곤 한다... 그럼 이걸 예방할 수 있는 방법이 있을까? 우선 객체를 비교할 때 String a = null String b = new String(); a.equals(b) // NullPointException 이렇게 equals를 쓰지 말고,(비교하는 주체 객체가 Null이면 equals method를 불러올 때 NullPointException 발생) String a = null; String b = new String(); Objects..
개인 프로젝트를 하면서 업무를 할 때 처럼 로그들을 남겨보려다...... 생각보다 술술 잘 안되서 개념을 한번 정리해보고자 한다. 로거 vs 로깅 퍼사드 로깅 퍼사드 로거를 자유롭게 교체하기 위해 쓰는 친구 Commons Logging, SLF4j 이 있다. 로거 JUL, Log4J2 로그를 찍는 친구들 Spring은 기본적으로 Commons Logging 을 쓴다고 한다. but 어찌됬든 위 사진을 보면 logback은 slf4j의 구현체 이며, log4j를 쓰든 JUL을 쓰든 로그는 Logback 로거로 찍힌다. 그럼 Logback 설정 파일을 만들어서 커스텀화를 해보자 logback-spring.xml 나의 기본 패키지 logging 레벨을 DEBUG로 설정한 것이다. 이 설정 파일을 이용하면 아주..
Annotation 이란? 근본적인 취급은 주석과 같은데 기능이 달려있는 주석이라고 생각하면 편할 것 같다. 자, 바로 기능 달린 주석을 만들어 보자. package annotation; public @interface MyAnnotation { } 간단하게 만들 수 있다. 그리고 바로 클래스에 달아보자. import annotation.MyAnnotation; @MyAnnotation public class OnlineClass { private Integer id; private String title; private boolean closed; public OnlineClass(Integer id, String title, boolean closed) { this.id = id; this.title..