Technology 46

캡슐화(정보 은닉)를 위한 Java의 접근 제어자 이해하기

캡슐화란? 객체 지향에는 대표적인 4대 특성이 있는데 바로 추상화, 상속, 다형성, 캡슐화이다. 이 중 캡슐화는 정보 은닉이라고도 하는데, 서로 관련 있는 속성과 메서드를 클래스에 하나로 묶고 사용자가 필요로 하는 인터페이스만 제공하고, 나머지 내부적으로 구현된 내용은 외부로부터 감추는 것을 의미한다. 이덕에 사용자 입장에서는 별도로 복잡한 코드를 실행하지 않고(사용자의 실수 방지) 특정 인터페이스만 호출함으로써 원하는 결과를 얻을 수 있게 하며, 객체 입장에서는 클래스 내부에 선언된 데이터를 보호(수정 방지)할 수 있게 된다. 아울러 외부에 공개되지 않은 멤버의 경우 해당 클래스 외부로의 파급 효과가 없으므로 수정이 용이하다는 장점도 있다. 이때 자바에서 구현 내용을 내부에 감추는 방법으로 접근 제어자..

Technology/Java 2022.02.05

부동 소수점 방식에 대한 이해

부동 소수점의 등장 배경 부동 소수점(floating point)는 원어 그대로 둥둥 떠다니는 소수점수를 의미한다. 이는 컴퓨터가 2진수밖에 인식하지 못하기 때문에 생긴 것이다. 사람은 직관적으로 무한한 수를 제외한 어느 소수점의 수도 인식할 수 있다. 예를 들면, 사람은 십진수 0.1을 있는 그대로 0.1로 인식하고 표현할 수 있다. 하지만 컴퓨터는 2진수만을 인식하므로 2진수를 통해서 간신히(?) 십진수 0.1을 표현할 수 있다. 즉, 1/2, 1/4, 1/8, 1/16, ... 등의 2진수 조합으로 0.1을 만들어야 하는 것이다. 아주 작은 소수들을 무한에 가까울 정도로 합쳐 0.1에 거의 근접한 수(이진 무한 소수점수)를 만들 수 있겠다만 문제는 컴퓨터의 저장 공간은 유한하다는 것이다. 즉, 컴퓨..

보수의 개념(2진법과 비트, 바이트, 1의 보수, 2의 보수)

2진법과 비트 2진법은 컴퓨터에서 입력과 출력을 표현하기 위한 표준 방법으로서 오직 0과 1(이진수)로만 데이터(정보)를 표현한다. 컴퓨터는 이러한 0과 1만의 숫자를 통해 글자, 사진, 영상, 소리 등을 저장할 수 있다. 컴퓨터의 가장 기본적인 단위는 트랜지스터라고 불리는 아주 작고 간단한 전기 스위치로, 이 트랜지스터의 on/off 상태를 통해 0과 1을 표현한다. 이때 2진수 상 각 하나의 자릿수를 표현하는 단위를 비트(bit)라고 하며 컴퓨터는 비트 단위로 정보를 처리한다. 바이트 비트 한 개만으로는 많은 양의 정보를 처리하기 부족하므로 바이트(byte)를 사용한다. 바이트는 8개의 비트열로서, 1바이트에는 여덟 개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기 때문에 1바이트는 총 25..

Ajax의 기본 사용법(Vanilla JavaScript)

웹 개발 트렌드 최근(정확하게는 몇년 전부터) 웹 개발 트렌드는 jsp를 사용하지 않고 프론트엔드 코드와 API 코드를 따로 구성하여 운영하는 추세이다. 서버 코드가 클라이언트 페이지에 존재하면 유지보수도 어렵고 관리도 힘들기 때문이다. 즉, JSP 페이지를 없애고, 스크립트 단에서 API를 통해 HTML 파일로 데이터를 가져오는 경우가 많아진 것이다. 이때 프론트 엔드 주요 SPA 계열의 자바스크립트 프레임워크인 리액트, 앵귤러, 뷰 등이 사용된다. Ajax란? Ajax란 비동기 자바스크립트와 XML(Asynchronous JavaScript And XML)을 말하는데, 자바스크립트에서 서버와 통신하기 위해 XMLHttpRequest 객체를 사용하는 것을 말한다. 이때 JSON, XML, HTML 등 ..

리다이렉트(Redirect) 와 포워드(Forward)의 차이

리다이렉트(Redirect)란? 리다이렉트는 HTTP 프로토콜로 정해진 규칙으로서 리다이렉트를 이용하면 서버가 클라이언트의 요청에 대해 특정 URL로 이동하도록(재요청하도록) 응답할 수 있다. 리다이렉트 시 서버는 클라이언트의 요청에 대해 응답 헤더 Location 값에 특정 URL을 할당하여 HTTP 상태코드 302로 응답하는데 이때 클라이언트(웹 브라우저)는 서버의 리다이렉션 응답을 받게 되면 응답 메시지 헤더 내 Location에 포함된 해당 URL로 재요청을 보내게 된다. 즉, 클라이언트는 서버에 두 번의 요청을 보내는 것이며 이때 당초 요청을 보냈던 사용자의 브라우저의 주소창은 처음 요청을 보냈던 URL이 아닌 새로운 URL로 바뀌게 된다. ※ 실제로는 리다이렉트의 유형에 따라 응답코드는 "3x..

Technology/Web 2021.12.24