본문 바로가기

전체 글119

[C#] 객체 지향 프로그래밍 1. 캡슐화 실제로 구현 부분을 외부에 드러나지 않도록 하는 것 변수와 메소드를 하나로 묶음 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근 ex) public, private, protected public : 클래스 외부에서 접근 가능 private : 클래스 내부에서만 접근 가능 protected : 상속받은 자식 클래스에서만 접근 가능 2. 상속 [class명] : [상속받을class명] 자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용함 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해 준다. 3. 추상화 모델링 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것 4. 다형성 어떤 .. 2022. 12. 18.
[회고] (22.08.20) JS 변수, 호이스팅, 객체 오늘 공부한 것 1. 변수 & 호이스팅 호이스팅 개념 정립이 잘 안되어 있던 것 같아 다시 정리해본다. 호이스팅이란 var 선언문이나 function 선언문 등 모든 선언문이 해당 Scope의 선두로 옮겨진 것처럼 동작하는 특성을 말한다. 즉, 자바스크립트는 모든 선언문(var, let, const, function, function*, class)이 선언되기 이전에 참조 가능하다. 변수의 생성 3단계도 다시 정리해본다. 선언 단계(Declaration phase) 변수 객체(Variable Object)에 변수를 등록한다. 이 변수 객체는 스코프가 참조하는 대상이 된다. 초기화 단계(Initialization phase) 변수 객체(Variable Object)에 등록된 변수를 메모리에 할당한다. 변수.. 2022. 8. 20.
[모두를 위한 컴퓨터 과학] 2-1. C 기초 * 부스트캠프 "모두를 위한 컴퓨터 과학"의 강의 내용을 기록한 게시물입니다. https://www.boostcourse.org/cs112/lecture/119004 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org C언어 #include int main(void) { printf("hello, world\n"); } C는 아주 오래되고 전통적인 순수 텍스트 기반의 언어입니다. 여러분들 중에서는 C를 이미 공부하신 분들도 있을 수 있고, 처음 접하하는 분들은 이런 이상한 영어들이 적혀있는 것을 보면 두려움이 생기실 수도 있습니다. 하지만 앞으로 있을 강의를 차근차근 듣다보면 위의 모든 코드는 물론이고, 그 이상을 이해하실 수 있을 것입니다. 우선 검은.. 2022. 8. 18.
[모두를 위한 컴퓨터 과학] 1-3. 알고리즘 * 부스트캠프 "모두를 위한 컴퓨터 과학"의 강의 내용을 기록한 게시물입니다. https://www.boostcourse.org/cs112/lecture/118999 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org 알고리즘 전 강의에서 숫자, 글자, 색깔 등을 컴퓨터가 이해할 수 있는 2진법으로 표현 것을 배웠습니다. 이 것은 입력(input)에 해당하는 것입니다. 이제는 출력(output)에 대해 이야기를 해볼까요? 그럼 어떻게 입력(input)에서 출력(output)을 얻을 수 있을까요? 컴퓨팅은 입력을 받아 그 입력을 처리한 후 출력하는 과정입니다. 알고리즘은 입력(input)에서 받은 자료를 출력(output)형태로 만드는 처리 과정을 뜻합니.. 2022. 8. 18.
[모두를 위한 컴퓨터 과학] 1-2. 정보의 표현 * 부스트캠프 "모두를 위한 컴퓨터 과학"의 강의 내용을 기록한 게시물입니다. https://www.boostcourse.org/cs112/lecture/118998 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org 문자의 표현 지난 시간에 컴퓨터가 스위치를 ON/OFF하면서 숫자를 표현한다고 했습니다. 그럼 과연 문자는 어떻게 표현할까요? 바로 문자를 숫자로 표현 할 수 있도록 정해진 약속(표준)이 있습니다. 그 중 하나는 설명미국정보교환표준부호 ASCII(아스키코드/American Standard Code for Information Interchange) 입니다. 총 128개의 부호로 정의되어 있는데, 가령 알파벳 A는 10진수 기준으로 65, .. 2022. 8. 17.
[모두를 위한 컴퓨터 과학] 1-1. 이진법 * 모두를 위한 컴퓨터 과학의 강의 내용을 기록한 게시물입니다. https://www.boostcourse.org/cs112/lecture/118997 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org 컴퓨터 과학 ? 컴퓨터 과학은 문제 해결에 대한 학문이다. 문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정입니다. 그 중간에 있는 과정이 바로 컴퓨터 과학입니다. 이러한 입력과 출력을 표현하기 위해선 우선 모두가 동의할 약속(표준)이 필요합니다. 따라서 컴퓨터 과학의 가장 첫 번째 개념은 어떻게 표현하는지에 대한 표현 방법입니다. 2진법 우리가 일상에서 사용하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 총 10개.. 2022. 8. 17.
[TIL] (22.08.12) HTML 에서 타입스크립트 사용하기 (작성중) Canvas 개념 (MDN) 는 HTML 요소 중 하나로서, 스크립트(보통은 자바스크립트)를 사용하여 그림을 그리는 데에 사용됩니다. 예를 들면, 그래프를 그리거나 사진을 합성하거나, 간단한(혹은 복잡할 수도 있는) 애니메이션을 만드는 데에 사용될 수 있습니다. TypeScript 를 사용하여 Canvas 그리기 사실 타입을 지정하는 것 외에는 자바스크립트로 canvas 를 그리는 것과 크게 다르지 않은 것 같다. 1. 타입 지정 canvas 의 DOM 인터페이스는 HTMLCanvasElement 이다. 코드 예제 // constructor() {} 안에 변수 선언 전에, 해당 변수에 대한 타입을 class 내에서 지정해줘야 한다. // Typescript 클래스는 클래스 몸체에 클래스 프로퍼티를 사전 .. 2022. 8. 12.
[TIL] (22.08.10.) React 버튼 onClick 이벤트 처리 상황 리액트 프로젝트에서 비슷한 기능을 수행하는 두 개의 버튼을 만들었다. 해당 버튼들에 onClick 이벤트로 모달창을 띄우도록 isModalOpen 값을 변경해주는 함수를 적용하고자 한다. 그리고 클릭한 버튼이 무엇인지에 따라 Modal 컴포넌트에 다른 children 을 주어 Modal 내에 다른 내용이 띄워지도록 처리하고 싶었다. 기존 코드는 이런 식이었다. 고민지점 문제는 특정한 버튼을 클릭할 때, 이 버튼이 어떤 버튼인지에 따라 Modal 의 children 에 들어가야 하는 값이 달라져야 하는데, 그걸 어떻게 해야할지 모르겠다는 점이다. 적용 일단은 하드코딩 느낌이 있지만, 버튼 별로 띄워주고자 하는 Modal 이 다른 거라고 생각했고, 각 버튼에 변경해줘야 하는 모달 상태를 따로 설정하고,.. 2022. 8. 10.
[WEB] 인증 방식 종류 2_Token 과 JWT 1. Token 인증 1) 개념 토큰 기반 인증 시스템은 클라이언트가 서버에 접속을 하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 '토큰'을 부여한다. 이 토큰은 유일하며 토큰을 발급받은 클라이언트는 이후 서버에 요청을 보낼 때 요청 헤더에 토큰을 담아 보낸다. 그러면 서버에서는 클라이언트로부터 받은 토큰을 서버에서 제공한 토큰과 일치하는지 여부를 체크하여 인증 과정을 처리한다. 기존의 세션 인증은 서버가 파일이나 데이터베이스에 세션 정보를 가지고 있어야 하고 이를 조회하는 과정이 필요하기 때문에 많은 오버헤드가 발생한다. 하지만 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다. 토큰 자체에 데이터가 들어있기 때.. 2022. 8. 5.