분류 전체보기 58

[CS] 명령어 구조 알아보기

명령어 구조 `연산코드` : 연산자 (명령어가 수행해야할 연산) `오퍼랜드` : 피연산자 (연산에 사용될 데이터 또는 데이터가 저장된 메모리 주소값) 연산코드 (operation code) 오퍼랜드 (operand) 더하기 숫자 120 숫자 100 저장하기 숫자 20 메모리주소 xx 연산코드 CPU마다 연산코드가 다른데, 대부분의 CPU가 공통적으로 처리하는 네가지 연산은 아래와 같습니다. 산술/논리 연산 : ADD, SUBSTACT, DIVIDE, OR, AND, NOT, COMPARE(true or false) 제어 흐름 변경 : JUMP, CALL, RETURN 데이터 전송 : MOVE, STORE, PUSH, POP, LOAD(FETCH) 입출력 제어 : INPUT(READ), OUTPUT(WRI..

CS 2024.04.12

[CS] 명령어 변환방식 : 컴파일, 인터프리터

컴퓨터가 이해할 수 있는 정보는 두가지. 항상 강조 드립니다. `데이터` `명령어` 왜 명령어를 알아야 하는가? 개발자가 작성한 소스코드가 명령어로 변환되어, 컴퓨터가 이를 인식하고 동작하기 때문입니다. 고급언어 vs 저급언어 고급 언어 : 사람이 이해하고 작성하기 쉽게 만들어진 언어 (소스코드로 복잡한 프로그램 구현 가능) 저급 언어 : 컴퓨터가 이해하고 실행할 수 있는 언어 기계어 : 이진수(0,1) 또는 십육진수(0~9, A~F)로 구성가능 → 한눈에 이해하기 어렵다! 어셈블리어 ★ : 기계어를 읽기 편한 형태로 번역한 언어 예시를 통해 기계어와 어셈블리어를 살펴보겠습니다. 기계어 어셈블리어 10110000 01100001 mov al, 061h mov : move al : CPU안에 있는 변수를 ..

CS 2024.04.11

[CS] 문자집합, 인코딩, 디코딩에 대하여 (feat. 아스키코드)

문자집합(character set) 컴퓨터가 인식하는 문자의 모음 아스키코드 : 초장기 문자집합 중 하나로 아스키 문자에 대응되는 고유한 수 1 byte(8bit) 사용 7 bit : 128(=2^7)개의 문자를 표현할 수 있음 → 오직 문자 표현을 위해 사용되는 비트 1 bit : parity bit로 오류 검출을 위해 사용되는 비트 Tip) 아스키코드를 이진법으로 표현함(인코딩)으로써 컴퓨터가 정보를 이해할 수 있습니다. 알아두면 편리한 아스키문자는 하기 테이블 참고 하시기 바라며, 아래 문자 외 궁금한 문자는 위 링크 참고 바랍니다. 이진법 십진법 십육진법 문자 1000001 65 41 A 1011010 90 5A Z 1100001 97 61 a 1111010 122 7A z 인코딩(encoding..

CS 2024.04.11

[CS] 비트 : 컴퓨터가 이해할 수 있는 가장 작은 정보의 단위

2024.04.09 - [CS] - [CS] 컴퓨터 구조의 이해 데이터 는 컴퓨터가 이해할 수 있는 정보라고 말씀 드렸는데요. 그렇다면 데이터를 어떻게 표현할 수 있는지 살펴보겠습니다. 비트(bit) 컴퓨터가 이해하는 가장 작은 정보 단위 binary(이진수) digit 의 줄임말로써, 0과 1로만 정보를 표현할 수 있습니다. n개의 비트로 2^n 가지 정보 가능 예를 들어, 2개의 비트로 표현할 수 있는 정보 : 4가지( = 2^2)} ==> (0,0) (0,1) (1,0) (1,1) 바이트(byte) 8 비트를 묶은 단위 (참고) 256가지(=2^8)의 정보를 표현할 수 있습니다. 데이터의 크기(용량)는 하기 테이블 참고 바랍니다. 구분 비고 바이트(byte) 8 비트 킬로바이트(kB) 1000 바이..

CS 2024.04.10

[CS] 컴퓨터 구조의 이해

왜 컴퓨터 구조에 대한 이해가 필요한가? 1. 문제 해결 백엔드 개발자도 서버/인프라에 대한 지식이 필요한 경우가 있습니다. 간혹 서버와 인프라 구축단에서 이슈가 발생했을때, 코딩만으로 해결하지 못하는 상황을 마주할 수 있습니다. 이때 컴퓨터 구조를 이해하고 있다면 좀더 명확하게 원인을 파악하고 이슈를 해결할 수 있습니다. 2. 비용절감, 성능고려 개발자라고 하면 개발기간, 비용, 품질에 대한 고민은 늘 따라 다닙니다. 개발한 서버가 오랜기간 정상 작동하기 위해서 알맞은 서버 컴퓨터를 구매해야합니다. 비용을 낮추면서도 성능은 유지할 수 있고, 용량 커버 범위도 넓다면 좋겠지요. 이때, 컴퓨터 구조가 도움될 수 있습니다. . . 컴퓨터 구조 컴퓨터는 명령어를 처리하는 기계입니다. 구조는 아래와 같이 나눌 ..

CS 2024.04.09

Java String format 함수를 활용해보자

개요 String 클래스에는 문자열에 사용할 수 있는 내장 메서드가 있는데, 이를 활용해보자. String.format() 불필요한 문자열 결합없이 `가독성`을 높여 원하는 형태로 formatting된 `하나의 문자열`로 출력이 가능하다. `%`를 붙여 지정된 서식에 따라 작성하면 된다. flag(0/-/+) 조건을 설정하여 공백을 채울 수 있다. 아래 사진은 format에 지정할 수 있는 주요 서식입니다. (하단 관련 링크 참고해서 필요하실때마다 사용하시기 바랍니다) 실습 String itemName = "바나나"; int price = 4000; int quantity = 1; System.out.println("구입 상품 : " + itemName + ", 가격 : " + price + ", 수량 ..

Java 2024.03.05

테크레터 7편. 자바 스크립트 관련 잡담(feat. 설문조사)

안녕하세요. 이번주 테크레터 주제는 `자바 스크립트` (JavaScript)입니다. 오늘 목차는 다음과 같습니다. 잡담 JavaScript 정의 실무에서 어떻게 활용될까? #잡담 저는 현재 Spring을 시작으로 본격적인 개발공부를 하고 있지만, JavaScript 역시 웹 애플리케이션 개발 시 많이 사용되는 프로그래밍 언어고, 프론트엔드/백엔드 개발자 모두에게 인기가 높습니다. 설문조사 결과를 통해 인기를 체감해보도록 하겠습니다. 가장 자신 있는 언어 (2020~2021) : Java(1위, 42.77%), JavaScript(2위, 40.2%) 특히 플랫폼, 교육, 콘텐츠/엔터 산업군의 개발자들의 가장 자신 있는 프로그래밍 언어는 JavaScript였습니다. 지난해 자신 있게 쓸 수 있는 프로그래밍 ..

테크레터 2024.01.29

[기초문법] Java8 Stream 적용/미적용 실습해보기

자바 문법을 활용하면 코드의 가독성을 높이는 효과도 있습니다. Java8부터 추가된 기능Stream()에 대해 알아보겠습니다. Tip) 자바 api문서는 여기를 참고해주세요 구글링하시면 다른 블로그에서도 충분한 설명이 되어 있으니 참고해주세요. 1. 결론 'Stream' 도입 전 : 반복문(for)을 통해서 데이터를 하나씩 가공 처리 도입 후 : 람다형식으로 쉽게 처리 장점 코드가 간결해짐 성능 측면에서도 유리 2. 코드비교 여기 코드 참고해주세요. 깃허브에 코드는 올려뒀습니다. 상황 Custom 클래스 : 손님 이름과 복지 포인트 변수를 담고 있음 복지 포인트가 100점 이상인 손님 정보가 필요함 @Getter public class Customer { private String name; privat..

Java 2024.01.16

테크레터 6편. 내가 알고 싶은 Github 기능 - Issue, Pull requests

실무에서 github을 통해 회사 자산인 코드를 관리하고 동시에 유관부서와 협업을 합니다. github 중요성은 아무리 강조해도 지나치지 않는 것 같네요. 그래서 오늘은 Github 기능에 대해서 간략하게 다뤄보도록 하겠습니다. 제 경우에는 코드나 프로젝트를 진행하면서 기본기능(커밋, 푸쉬, 브랜치, 머지, 리베이스 등)은 자주 사용하고 있는데요. 다만 `Issue`, `Pull requests` 기능은 한번도 사용하질 않았습니다. 이번 테크레터는 두가지 기능에 대해 중점적으로 공부해볼게요. Tip) 기본적인 지식은 아래 두가지 링크를 남겨 드릴테니 직접 실습을 통해 공부하시길 추천 드립니다. 제안 드리는 학습 방향은 다음을 참고해주세요. 1) 도서를 구입하신 후, CLI(Command-Line Inte..

테크레터 2024.01.15