daino_saur
article thumbnail
[CS50] 정보의 표현
프로그래밍/CS 2023. 11. 16. 18:55

문자의 표현 이전 글에서 컴퓨터는 2진법을 사용해 작동한다고 알아보았다. [CS50] 컴퓨팅사고와 2진법 오늘은 컴퓨터 사이언스 공부를 시작하기 전에 컴퓨터 사이언스에 대해 알아보겠다. 컴퓨터 사이언스란 "컴퓨터를 이용한 문제 해결에 대한 학문"이다. 문제 해결은 입력을 받아 출력을 만들어 daino.tistory.com 그렇다면 문자는 어떻게 표현할까? 바로 숫자로 변환해 표현한다. 문자를 숫자로 표현 할 수 있도록 정해진 약속이 있는데, 그중 하나가 아스키 코드이다. ASCII ASCII는 8비트까지만 사용했고 미국식 영어만 표현했기에 모든 문자를 표현하기 어려웠다. 그래서 상위 개념으로 유니코드가 탄생했다. 사진의 표현 → RGB값 사용 색상 패턴을 숫자로 해석해서 RGB 양으로 받아들이고 모든 색..

article thumbnail
[CS50] 컴퓨팅사고와 2진법
프로그래밍/CS 2023. 11. 16. 18:37

오늘은 컴퓨터 사이언스 공부를 시작하기 전에 컴퓨터 사이언스에 대해 알아보겠다. 컴퓨터 사이언스란 "컴퓨터를 이용한 문제 해결에 대한 학문"이다. 문제 해결은 입력을 받아 출력을 만들어내는 과정을 말하는데, 이러한 입력, 출력을 표현하기 위해 약속이 필요하다. 컴퓨터 사이언스의 첫번째 개념은 이 입출력을 어떻게 표현하는지에 대한 표현 방법이다. 컴퓨터에서 2진법 컴퓨터에 작동원리를 알아보고 2진법이 무엇인지, 컴퓨터는 왜 2진법을 사용하는지 알아보겠다. 10진법 인간은 일상에서 10진법을 사용한다. 10진법은 0, 1, 2, 3, 4, 5, 6, 7, 8, 9로 이루어진이고, 손가락으로 숫자를 세는것과 같다. 만약 123을 표현한다면, 아래와 같이 10의 거듭제곱의 수를 곱해 사용한다. 2진법 인간과 달..

article thumbnail
[CS50] 다시, 컴퓨터 사이언스를 공부하는 이유
프로그래밍/CS 2023. 11. 16. 18:08

이전에 Swift로 언어를 시작하며 CS강의를 듣은 적이 있다. 그때는 "이게 왜 필요하지? 그냥 코드 치면 안되나?"라는 생각으로 대충 듣고 머리에서 지워버렸다. 하지만 계속해서 개발 공부를 해나가면서, 프로그래밍을 더 깊게 이해하고 싶다는 생각이 들었다. 그래서 알아보던 중 하버드에서 강의하는 [CS50]이라는 컴퓨터 사이언스 강의를 네이버 부스트코스에서 무료로 들을 수 있다는 것을 알았다. 앞으로 CS50 강의를 듣고 정리를 하며 기본을 더 탄탄하게 자리잡는 시간이 되었으면 좋겠다. 다 함께 배우고 성장하는 부스트코스 부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다. www.boostcourse.org

article thumbnail
[Flutter] Open API JSON 파싱
프로그래밍/Flutter 2023. 10. 29. 23:56

서막 이전에 나는 구글의 API를 활용한 글을 쓴 적이 있다. 플러터 [Flutter] 구글맵 [Googlemap] - json 데이터로 마커 생성(2023ver) http로 전 세계 구글지사 json 파일을 받아 구글맵에 마커를 생성해 보겠습니다. 패키지 추가 HTTP 요청을 위해 http 패키지 추가 flutter pub add http json으로 받아온 데이터를 직렬화해주는 패키지를 추 daino.tistory.com 근데 어떤 분이 내가 그 글에 댓글을 달아주셨다. JSON 데이터 파싱시, json_serializable 패키지를 사용했는데, 데이터가 원할하게 받아오지지 않고 누실이 있다는 내용이었다. 사실 나는 주로 Firebase로 내부 데이터만 관리했지 외부 API를 써본 적이 없었다. 그..

article thumbnail
[Flutter] HTTP 구조
프로그래밍/Flutter 2023. 10. 29. 20:23

오늘은 HTTP 구조에 대해 알아보겠다. HTTP Request 구조 HTTP Request는 서버에 우리가 무언가를 요청하는 것이다. Start Line - Method - Request Target : 전송 주소 - HTTP Version GET - Data를 받아옴 POST - Data를 추가함 Header - User-Agent - Authorization : 로그인 인증 토큰 - Cookie : Key-Value 형태의 긴 여러 데이터 - Content-Type : 보낸 Body Data의 데이터 유형 Body Content-Type에서 선언한 데이터 HTTP Response 구조 HTTP Response는 서버에 요청후 서버가 우리에게 주는 응답이다. Start Line - Status Cod..

article thumbnail
[Flutter] Lambdas
프로그래밍/Flutter 2023. 10. 29. 20:05

오늘은 Flutter의 Lambdas, 람다에 대해 알아보겠다. 람다란? 익명함수의 변형된 형태 람다의 표현 (int 파라미터1, String 파라미터2) => 반환값 소괄호 안에는 함수의 파라미터 리스트가 들어가고 화살표 이후에 반환값을 나타낸다. 람다의 특징 1. 익명 : 이름을 지을 수 없다. (변수에 담을 수 있음) 람다의 이름을 지정할 수 없다. 2. 함수 : Class에 종속되지 않음 람다식은 class와 관계없이 저장이 되는 것이기에 종속되지 않고, class의 값을 변경할 수도 없다. 3. 전달 : 1급 객체로서 함수 파라미터로 전달, 변수에 저장 가능 변수로 저장이 가능하다. 4. 간결성 : 익명 클래스처럼 많은 코드를 구현할 필요가 있다. =>로 return 처리를 대체하기 때문에 코드..