전체 글

전체 글

    [CS] 진법에 대해 알아보자(1)

    2진법과 10진법 우리는 일상생활에서 주로 10진법을 사용한다. 1946년에 개발된 컴퓨터 에니악은 사람에게 익숙한 10진법을 사용하도록 설계되었지만, 전기 회로는 전압이 불안정하여 전압을 10단계로 나누어 처리하는 데 한계가 있었다. 그래서 1950년에 개발된 에드박은 단 두가지 단계, 전기가 흐르면 1, 전기가 흐르지 않으면 0으로만 동작하도록 설계되었고 매우 성공적이었기에, 지금까지 대부분의 컴퓨터는 2진법을 사용한다. 우리는 변수에 값을 저장하면 10진수로 저장되는 것처럼 보았지만, 실제로 컴퓨터는 2진수 밖에 모르기에, 2진수로 바뀌어 저장하게 된다. 따라서 age에 22를 저장하면 실제로는 2진수인 11001로 저장이 되는 것이다. 2진수는 0과 1로만 데이터를 표현하기에 10진수보다 많은 자..

    [Java] 자바의 자료형

    Java의 자료형은 기본형과 참조형 두가지로 구분이 가능하다. 기본형은 실제 값을 가지고, 참조형은 어떤 값이 저장되어있는 주소를 값으로 가진다. Java의 기본 자료형은 아래의 표와 같다. 종류 키워드 크기 허용 범위 논리형 boolean 1 byte false, true 문자형 char 2 byte '\u0000' ~ 'uFFFF' 정수형 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2147483648 ~ 2147483647 long 8 byte - 9,223,372,036,854,775,808~9,223,372,036,854,775,807 실수형 float 4 byte ±1.4E-45 ~ 3.4E38 double 8 byte ±..

    [Spring] Ioc, DI, 컨테이너

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Ioc 제어의 역전(Inversion of Control) 기본 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결을 했다. 즉 구현 객체가 프로그램의 제어 흐름을 조종한 것이다. 하지만 AppConfig(조립, 설정자)가 있으면, 구현 객체는 자신의 로직을 실행하는 역할만 담당하며, 모든 제어 흐름을 AppConfig가 가져간다. 즉 AppConfig가 어떤..

    [Spring] 좋은 객체 지향 설계의 5가지 원칙

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 SOLID 클린코드로 유명한 로버트 마틴이 정리한 좋은 객체 지향 설계의 5가지 원칙 SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙 (Open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregatio..

    [Spring] 객체 지향 프로그래밍이란?

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Spring은 객체 지향 언어인 Java의 프레임워크로, 객체 지향 언어의 특징을 살려내고, 좋은 객체 지향 프로그램을 개발 할 수 있게 도와주는 프레임워크다. 객체 지향 프로그래밍이란? 프로그래밍을 명령어의 목록으로 보는 것이 아닌, 독립된 단위 "객체"들의 모임으로 파악하는 것으로, 각 객체는 메세지를 주고 받고 데이터를 처리 할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변..

    [JavaScript] 정규식에 대해 알아보자

    정규식(정규 표현식) 문자열에서 특정 문자 조합을 찾기 위한 패턴이다. JavaScript에서는 정규식도 객체이기에, RegExp의 exec 등의 메서드를 사용할 수 있다. 정규 표현식 만들기 const re1 = /ab+c/ const re2 = new RegExp('ab+c') //정규식은 // 안에 찾고자 하는 패턴을 작성하고 여러가지 옵션을 준다. Groups and ranges | 는 또는을 의미한다. const reg = /HI|HELLO/ // HI or HELLO () 는 그룹을 의미한다. const reg1 = /(HI|HELLO) | (BYE)/ // HI거나 HEllO를 찾거나 혹은 BYE const reg2 = /gr(e|a)y/ //grey 혹은 gray 탐색 (?:) 찾지만, 그..

    [HTTP] HTTP 상태 코드

    HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로 크게 5가지로 구분된다. 1XX (Informational) : 요청이 수신되어 처리 중 2XX (Successful) : 요청 정상 처리 3XX (Redirection) : 요청을 완료하려면 추가 행동이 필요 4XX (Client ERROR) : 클라이언트 오류, 잘못된 문법등으로 서버가 기능을 수행 할 수 없다. 5XX (Server ERROR) : 서버 오류, 서버가 정상 요청을 처리하지 못 함. 2XX (Successful) 클라이언트의 요청을 성공적으로 처리 200 : 요청 성공 201 : 요청이 성공하여, 새로운 리소스가 생성됨 202 : 요청이 접수는 되었지만,처리가 되지 않았다. 204 : 서버가 요청을 성..

    [React] useInput Hook 사용하기

    기존의 useState를 이용하는 것이 아닌 useInput이라는 함수를 만들어서 input 상태를 관리한다. import { useState } from "react" const useInput = (init) => { const [item, setItem] = useState(init) onchange = (event) => { setItem(event.target.value) } return { item, onchange } } export default function Counter() { const name = useInput() return ( Enter Your Name Name : {name.item} ) }

    [React] useState 사용하기.

    useState useState는 함수형 컴포넌트에서 상태를 관리할 수 있게 해주는 React Hook이다. useState는 react로부터 import를 하여 사용할 수 있다. const [상태, 상태변경 함수] = useState(초기값)의 형태로 작성을 하게 된다. import {useState} from "react" const [item, setItem] = useState() const [상태, 상태변경 함수] = useState(초기값) useState 비동기 처리 useState의 setState가 비동기로 작동하기에, 가끔 문제가 있을 수도 있다. 그 때는 useState setState를 함수를 이용한다. const [item, setItem] = useState() // 기존 set..

    [Http] HTTP에 대해서 알아보자.

    HTTP HyperText Transfer Protocol HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(Stateless), 비연결성 HTTP 메세지 단순함, 확장 가능 HTTP 버전 HTTP/1.1 : TCP -> 주로 해당 버전 사용 HTTP/2 : TCP HTTP/3 : UDP 1. 클라이언트와 서버 구조 클라이언트와 서버는 요청(Request)과 응답(Response)을 주고 받는다. 클라이언트는 요청을 보내고 응답을 대기하며, 서버는 요청에 대한 결과를 만들어서 응답한다. 2. 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태를 보존하지 않기에, 서버 확장성이 높지만, 클라이언트가 지속적으로 추가 데이터를 전송해야한다. 3. 비연결성 HTTP는 연결을 유지하지 않는 모델로, ..