전체 글 106

32bit vs 64bit

윈도우 32bit 와 64bit의 차이가 무엇인지 알아보자. 얻어갈 지식 32bit와 64bit의 차이 "32bit vs 64bit" 32bit 64bit는 cpu의 한 부분인 레지스터가 한 번에 처리할 수 있는 용량을 뜻한다. 32bit는 한 번에 32bit 만큼의 용량을 처리하고 64bit는 한 번에 64bit 만큼의 용량을 처리하는 것이다. 따라서 32bit는 한 번에 최대 2^32 = 4,294,967,296를 표현 64bit는 한 번에 최대 2^64 = 18,446,744,073,709,551,616를 표현할 수 있다. 단순히 2배 차이가 아니라 어마어마한 차이의 숫자이다. 더하여 32bit는 4G만큼의 메모리만 사용할 수 있다는데 ( 메모리를 더 꽂아도 딱 4G 만큼만 사용 함 ) 레지스터가 ..

Java에서 String 생성 시 ""와 new 의 차이

Java에서 String 생성 시 "" 리터럴을 사용하여 만드는 방법과 new 키워드를 사용해 만드는 방법의 차이는 무엇일까? 얻어갈 지식 Java에서 String형 변수 생성 시 ""리터럴과 new 키워드의 차이 "리터럴과 new 키워드의 차이" Java에는 heap이라는 저장 공간이 있는데 이 heap안에 string pool이 존재한다. "" 리터럴로 String을 만들면 이 string pool 안에 들어가는데 들어가기 전 이미 중복된 문자열이 있는지 확인하고 있다면 해당 주소 값을 공유하게 된다. 반면 new 키워드를 사용해 개체를 생성하면 다른 개체와 똑같이 string pool을 제외한 heap안에 생성되며 같은 글자를 갖는 String 개체가 있더라도 새로운 독립된 개체를 생성하게 된다. ..

비트 패턴

비트 패턴이란 무엇일까? 얻어갈 지식 비트 패턴 "비트 패턴" 비트는 2진수가 아닌 패턴으로 이해해야 한다. 다시 말해 비트는 해당 비트가 표현하는 것이 무엇이냐에 따라 숫자도 표현할 수 있고 다른 무엇도 될 수 있다. 비트 패턴은 4비트로 묶어 보는 것이 편하다. 0100 1000 0010 1111 이것을 16진수 명명법으로 나타낼 수도 있다. ( 482F ) 가끔가다 3비트씩 묶어 보는 경우도 있다. 001 101 010 이것을 8진수 명명법으로 나타낼 수 있다. ( 152 ) https://paranmir.wordpress.com/2011/01/23/programming-%EB%B9%84%ED%8A%B8%EC%99%80-%EB%B9%84%ED%8A%B8%ED%8C%A8%ED%84%B4/ [PROGR..

컴퓨터의 음수 표현과 보수법

컴퓨터는 어떻게 음수를 나타낼까? 얻어갈 지식 보수법 MSB ( most significant bit ) "보수법" 우선 컴퓨터가 음수를 표현하는 방법을 알아보기 전에 보수법에 대해 알아보자. 보수란 보충해주는 수라는 의미다. 좀 더 자세히 말하면 R진법의 수 X가 있을 때 X를 R의 최소 제곱수가 되도록 만드는 수를 R의 보수라 고한다. 10진법의 수 3이 있을 때 3을 10의 최소 제곱수 ( 이 경우 10 )로 만드는 수는 7이므로 ( 3+7=10 ) 10진법 3의 10의 보수는 7이다. 10진법의 수 12가 있을 때 12를 10의 최소 제곱수( 이 경우 100 )로 만드는 수는 88이므로 ( 12+88=100 ) 10진법 12의 10의 보수는 88이다. 일반적으로 R진법에는 R의 보수와 R-1의 보..

signed, unsigned

signed와 unsinged는 어떤 의미 일까 얻어갈 지식 signed, unsigned 비트 "signed, unsigned" signed는 양수, 음수, 0 모두 표현이 가능한 값을 뜻하고 unsigned는 오직 0과 양수만 표현이 가능한 값을 뜻한다. 8bit로 예를 들어 보자. 더보기 bit는 '0'또는 '1'같이 서로 배타적인 상태를 나타낼 수 있는 컴퓨팅과 디지털 통신에서 가장 작은 정보 단위다. 1byte는 보통 8bit를 뜻한다. 8bit로 나타낼 수 있는 수는 0000 0000 ~ 1111 1111까지의 수 이므로, 2^8 = 256 가지이다. 이러한 8bit로 0을 포함한 정수를 나타낸다면 0 ~ 255까지 표현이 가능하고 음의 정수를 포함한다면 -128 ~ 127까지 표현이 가능하다..

객체지향의 사실과 오해

"객체지향의 사실과 오해"를 읽었다. 다음은 책의 일부를 발췌한 내용이다. 협조적이고 성실한 객체 시민들로 구성된 객체지향 시스템을 설계하는 절차는 다음과 같이 요약할 수 있다. 우선 시스템이 사용자에게 제공해야 하는 기능인 시스템 책임을 파악한다. 시스템 책임을 더 작은 책임으로 분할한다. 분할된 책임을 수행할 적절한 객체 또는 역할을 찾아 할당한다. 객체가 책임을 수행하는데 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 객체 또는 역할을 찾는다 해당 객체 또는 역할에게 책임을 할당함으로써 두 객체는 협력하게 된다. 위와 같이 이 책은 역할, 책임, 협력을 중심으로 객체지향을 설명하고 있으며 객체지향적으로 설계함으로써 얻게 되는 이점인 캡슐화, 일반화-특수화 등 여러 이점에 대해 설명해준다. ht..

2021.08.04

Elastic Beanstalk 적용

아마존의 Elastic Beanstalk에 대해서 알아보자. 얻어갈 지식 Elastic Beanstalk "Elastic Beanstalk" Elastic Beanstalk란? 하나의 웹서버를 배포하기 위해서는 많은 과정이 필요하다. ec2를 만들고, 로드밸런싱을 적용시키고, rds를 만들고 알림도 만들고...... Elastic Beanstalk는 이러한 절차를 모두 자동으로 만들어주며 수정도 손쉽게 할 수 있는 환경을 제공한다. 한마디로 Elastic Beanstalk는 웹 애플리케이션/웹 서비스를 배포하고, 확장하고, 관리하는 데 있어 쉽고 빠르게 할 수 있도록 돕는 완전 관리형 서비스이다. Elastic Beanstalk 살펴보기 Elastic Beanstalk는 하나의 "애플리케이션"안에 여러 ..

AWS 2021.07.29

로드 밸런싱

아마존 ec2 설정 페이지에 들어가 보면 "로드 밸런싱"이라는 섹터가 있는데 이 로드 밸런싱이란 대체 무엇일까? 얻어갈 지식 로드 밸런싱 "로드 밸런싱" 로드 밸런싱이란? 로드 밸런싱( 부하 분산 )은 둘 혹은 셋 이상의 자원들에게 작업을 나누는 것을 의미한다. 이로써 가용성 및 응답 시간을 최적화시킬 수 있다. 예를 들어 여러 대의 서버로 하나의 애플리케이션을 서비스할 때 사용자의 요청을 어느 서버로 보낼지 정해주는 것을 로드 밸런싱이라고 한다. 로드 밸런서의 동작 순서 로드 밸런서는 보통 아래와 같은 순서로 동작한다. 클라이언트가 브라우저에서 naver.com이라고 입력하여 DNS로 해당 IP 문의 DNS는 로드밸런서의 VIP ( Virtual IP ) 주소를 알려줌 클라이언트는 로드 밸런서의 VIP..

네트워크 2021.07.28

클라우드 컴퓨팅과 Amazon EC2

클라우드 컴퓨팅과 Amazon의 대표적인 클라우드 서비스인 Amazon EC2에 대해 알아보자. 얻어갈 지식 클라우드 컴퓨팅 Amazon EC2 서비스 "클라우드 컴퓨팅" 클라우드 컴퓨팅이란 IT 리소스를 인터넷을 통해 필요시 바로 제공하는(on-demand availability) 것을 말한다. 물리적인 데이터 서버를 갖고 있지 않는 것에서 오는 장점들이 있다. 서버 구입, 유지 보수 비용이 없다 사용한 만큼만 비용을 지불하는 종량제 모델 데이터를 신뢰성 높은 서버에 보관함으로써 안전하게 보관 가능 전문적인 하드웨어 지식 없이 쉽게 사용 가능 이러한 클라우드 컴퓨팅은 크게 4가지 서비스 모델로 나눌 수 있다. 서비스형 인프라스트럭처 ( IaaS ) 일반적으로 네트워킹 기능, 컴퓨터 및 데이터 스토리지 ..

AWS 2021.07.27

mariaDB json value값만 가져오기

DB에 json 타입으로 값을 저장했을 때 원하는 key에 해당되는 value 값만 보고 싶으면 어떻게 해야 될까? 같이 알아보자. 얻어갈 지식 JSON 형식으로 저장된 값 value만 뽑아 보기 "키워드" mariaDB 사용 시 json의 key값을 보고 싶을 때는 json_value()를 사용하면 된다. 예를 들어, user 테이블의 mobile이란 컬럼에 아래와 같은 형식으로 값이 저장될 때 // Mobile { name: "남해성", head: "010", body1: "1234", body2: "5678" } name에 해당되는 "남해성"만 보고 싶다면 아래와 같이 하면 된다. SELECT json_value(mobile, '$.name') as name FROM user; 결과는 아래와 같다...

RDB 2021.07.21