본문 바로가기

Language

(12)
JSON stringify 란? jQuery Ajax를 사용하면서 json 형식으로 데이터를 주고받는 일이 빈번하게 발생했고 단순한 데이터, 예를 들어 아래와 같은 json 형태를 주고 받는데 있어서는 어려움이 전혀 없었습니다. { id : 'min.c00', name : '정민창', } 내가 마주했던 문제는 아래의 상황처럼 하나의 key에 array형태로 데이터를 전송해야 했습니다. { list : ['....', '....', ...] } 이 문제를 해결하고자 찾은 방법이 JSON stringity라는 기술입니다. JSON stringify 란? 먼저 JSON은 일반적으로 데이터를 저장하거나 전송할 때 많이 사용되는 데이터 교환 방식인데 Javascript에서 객체를 만들 때 사용하는 표현식을 의미합니다. json 형태로 데이터를 ..
자바에서 정확한 실수의 표현과 부동 소수점 자바를 공부하다가 정말 이상한 점을 발견했다. 아래의 코드의 출력 결과는 굉장히 충격적이었다. System.out.println(2.0 - 1.1); 나는 자신있게 '0.9' 를 외쳤지만 내 기대와 다른 결과가 도출 됬다. 0.899999999999999 뭐지... 내가 배웠던 수학이 잘못 되었는지에 대해 회의감이 발생하지만 알고나면 내 수학공부 과정이 틀리지 않았음을 알 수 있었다. 오늘의 주제는 자바에서 2.0 - 1.1 의 계산 결과가 0.9가 나오지 않았던 이유에 대해 정리해보려고 합니다. 컴퓨터의 언어 (기계어) 컴퓨터는 내부적으로 0 과 1의 스트림만 이해 할 수 있습니다. 즉, 내가 컴퓨터 한테 '1+1 계산해줘'라고 해봤자 못알아 먹는다는 겁니다. '1+1 계산해줘' 를 2진수 체계로 변환..
Collection이란? 자바에서는 배열을 사용해서 데이터 타입이 같은 데이터들을 하나의 변수로 묶어 관리합니다. 배열의 장점은 많은 양의 데이터를 한 번에 관리할 수 있고 반복문과 결합해 단순 반복적인 효율적으로 처리할 수 있다는 것입니다 하지만 배열에는 단점 또한 존재 합니다 1. 배열을 선언하면 배열의 크기를 초기에 설정하고 이후에 변경이 불가능하다. 2. 데이터를 검색하는 과정에서 시간이 많이 걸린다. 3. 같은 기본형 데이터 타입의 자료형만 저장할 수 있다. 배열의 문제점을 해결하기 위해 나온 개념이 Collection입니다. 1. Collection 이란? Collection은 간단히 말해 객체들의 집합이자 자료구조를 의미합니다. 객체들을 한 곳에 저장하고 관리하는데 목적을 두고 있습니다. ArrayList array..
추상 (Abstract) 클래스 와 인터페이스 (Interface)의 사용 목적과 차이점 이번 글에서는 자바에서 사용하는 추상 클래스 (Abstract Class) 와 인터페이스 (Interface) 의 차이점과 두 가지의 사용 목적에 대해 정리를 해보겠습니다. 먼저 추상 클래스의 개념에 대한 정리를 하겠습니다. 1. 추상 클래스 (Abstract Class) 추상클래스는 실체 클래스의 공통적인 부분을 추출해서 선언한 클래스를 의미하며 실체성이 없고 구체적이지 않기 때문에 객체를 생성할 수 없다. 때문에 실체클래스와의 상속 관계를 통해 사용할 수 있다. 추상화에서 추상화는 클래스간의 공통점을 찾아내서 공통의 부모를 설계하는 작업을 의미합니다. 비유하자면 추상클래스는 미완성 설계도라고 할 수 있다. 자바에서 사용 방법은 다음과 같습니다. [접근 제한자] abstract class [클래스명] ..
Exception (예외) 의 개념과 사용 이유 Exception 은 '예외'라는 뜻이다. Exception에 대해 정리하기 전에 궁굼증이 생겼다. "예외와 오류의 차이는 뭐지?" 위의 물음을 해결하고자 예외와 오류의 차이를 먼저 정리하고 가겠습니다. 0. Exception (예외) 와 Error (오류) 의 차이 Exception (Java SE 15 & JDK 15) All Implemented Interfaces: Serializable Direct Known Subclasses: AbsentInformationException, ActivationException, AgentInitializationException, AgentLoadException, AlreadyBoundException, AttachNotSupportedException,..
Wrapper Class 이란? 이번 글은 Wrapper Class 에 대한 개념과 사용 이유에 대해 정리해 보려고 합니다. 'wrapper'라는 말의 의미는 '감싼' 이라는 뜻으로 랩으로 음식을 감싸는 이미지를 생각하시면 될것 같습니다. 그럼 이제 궁굼한건 "뭘 감싸는 거지?" 라는 물음이 생기실 겁니다. 결론적으로 말하자면 Primitive type 변수를 감싸는 겁니다. 그럼 이어서 'Primitive type 변수' 는 뭔지에 대한 물음이 생기실 겁니다. Wrapp Class 에 대한 자세한 내용을 알기 전에 Primitive type에 대한 개념 정리를 먼저 하겠습니다. 0. 자바의 데이터 타입의 종류 자바에서는 데이터 타입이 크게 두가지, 원시타입(Primitive type) 과 참조타입(Reference Type) 이 있습..
static의 사용 이유와 스레드(thread)의 대한 개념 0. JVM의 메모리 구조 - static, stack, heap JVM의 메모리 구조에는 여러 영역이 있지만 static, stack, heap 영역 3가지 공간에 대한 정리를 하려고 합니다. 구체적인 JVM 의 메모리 구조에 대한 정리는 아래를 참고 해주시면 될것 같습니다.
Overriding (오버라이딩) 과 Overloading (오버로딩) Overloading 과 Overriding 의 차이는 구글링을 통해 어떤 차이가 있는지에 대한 설명은 쉽게 알 수 있었습니다. 이번글은 그 둘을 왜 쓰는 지에 대해서 정리 해보려고 합니다. 둘의 사용 목적을 분명히 말할 수 없었고 앞으로는 OOP적 관점에서 내가 사용하고 있는 코드들의 목적성을 분명하게 할 필요성을 느끼게 됬기 때문입니다. 1. Overriding (오버라이딩) public class Person { public void hello() { System.out.println("안녕하십니까"); } } public class Student extends Person{ public void hello() { System.out.println("안녕하십니까 저는 학생입니다."); } publi..

반응형