본문 바로가기

전체 글26

IP 와 Class - 공부하는 네트워크 (2) IP ( Internet Protocol ) IP 는 네트워크 통신을 위한 장비들이 서로를 식별하기 위한 고유번호입니다. 각각의 아이피는 장비마다 고유하며 다른 장비와 겹치는 IP 가 존재해서는 안됩니다. 🏠 Building an Ip Address 총 32bit 로 이루어져있고 Octet 으로 구분하여 8bit 씩총 4개의 구역으로 이루어져있습니다. 일반적으로 2진수가 아니고 10진수로 표현해서 128.10.2.41 와 같은 형태가 됩니다. 128 10 2 21 10000000 00001010 00000010 1000000010101 🐔 Network Area and Host Area 우리나라의 집 전화번호 체계는 앞자리가 지역번호이고 나머지가 고유번호로 구성되어있습니다. 지역 번호 고유 번호 031 .. 2021. 9. 18.
Ethernet 과 Bridge - 공부하는 네트워크(1) 영어 공부 좀 할 겸 장비나 용어들은 전부 영어로 표기했습니다. 오타가 좀 많을 수 있습니다. 지적해주시면 바로 수정하겠습니다. 컴퓨터에서 컴퓨터로 데이터를 옮기려면 어떻게 해야 할까? 보통은 귀찮아서 카카오톡 나에게 보내기 기능으로 자료를 옮기거나 구글 드라이브에 올리곤 한다. 이 모든 일이 쉽게 이루어질 수 있는 이유가 무엇일까요? 💻 Ethernet 오늘날의 통신방식을 이해하려면 먼저 이더넷의 동작 원리 부터 알아볼 필요가 있다. 이더넷은 CSMA/CD (Carrier Sense Multiple Access / Collision Detection) 방식의 기술 기반으로 이루어져있다. CSMA/CD 방식은 일종의 눈치게임 입니다. 위의 사진처럼 4대의 컴퓨터가 Ethernet 방식으로 연결되어있다고 .. 2021. 9. 11.
치즈군대를 가버린 Jerry 22살의 내가 군대를 와버렸다. 후회 없는 선택이길 바라면서 지난 반년간 무엇을 했고 남은 반년간 무엇을 할지 적어보려고 한다. 🏢 나의 첫 회사 살아가다 보면 선택을 해야 하는 순간들이 은근히 많은데, 선택지가 주어질 때 이 선택이 정말정말 중요해 보이는 순간이 있다. 이 회사에서 입사 제안이 왔을 때 나는 이게 바로 그 순간이라는 것을 직감했다! 실제로도 들어오고 일하는 1년간 정말 많은 것을 배우고 느꼈다. 그중에 대표적인 것들을 소개해보고자 한다. 협업을 위한 협업 이전에는 단기목적을 위한 협업 경험이 잦았다. 외주 목적으로 이루어진 팀은 완성에 의한 계약금을 목표로 하고 해커톤이나 공모전 팀은 수상을 목표로 달린다. 하지만 내가 이 회사에서 본 구성원들의 협업은 단기목적을 위한 협업이 아니었다... 2021. 9. 5.
프로그래밍 과외 후기 첫 과외 누군가를 가르치기 시작한것은 아마 20살 초반 이였던 것 같다. 당시 중학교 3학년이였던 친구를 과외할 기회가 생겼고 처음으로 돈을 받고 다른 사람을 가르치는 경험을 해봤다. 4월부터 10월 정도까지 약 6개월 정도 진행하였고 수학을 가르쳤다. 필자도 수학을 엄청나게 잘하는 편은 아니었지만 수능 수학을 공부한 지 얼마 되지 않은 상태여서 가르치기 수월했던 것 같다. 다른 분야긴 하지만 이때 장기적으로 누군가를 가르쳐본 경험은 이후에 프로그래밍 과외를 시작할 때 많은 도움이 되었다. 대학교 1학년에 재학 중일 때는 따로 유료과외를 진행하기 눈치가 보였다. 나이도 20살이고 대학교 1학년인데 같은 학교 안에서 가르치게 된다면 최소 같은 학번이거나, 나머지는 나보다 연상인데 이는 가르치는 사람도 부담.. 2021. 6. 29.
웹 퍼블리싱할 때 꿀팁 1. inline style 을 피하는 것이 좋습니다. 인라인 스타일은 간단한 내용을 적을 때 태그 자체에 대한 가독성은 좋지만 style 안에 내용이 길어지면 가독성이 급격하게 떨어집니다. 또한 인라인 스타일을 사용하게되면 스타일 코드를 재활용할 수 없게됩니다. ex1) ex2) 2. Semantic Tag 를 활용하는것이 좋습니다. HTML5에서 추가된 Semantic Tag를 활용하면 좀 더 간결하게 작성할 수 있습니다. 또한 브라우저의 코드 인식률도 올라가게됩니다. 3. 가운데 정렬을 위한 여러가지 방법 흔히 center-position-box 를 가운데 정렬하기 위해서 box-wrapper에 display: flex 를 줘서 가운데 정렬을 하곤하는데, box-wrapper 에 display: .. 2021. 3. 25.
사용자를 인증하는 여러가지 방법 인증과정이 없다면 서버와 클라이언트가 데이터를 주고받을 때 중요한 데이터가 오가는 경우가 있을 수 있습니다. 대표 적인 경우가 개인정보등을 다루는 일인데, 이때 내가 아닌 다른사람도 서버에 접근할 수 있다면 매우 위험할 수 있습니다. 이러한 문제가 발생하기때문에 고전적으로는 ID, PW 방식을 통해서 서버에서 데이터들을 보호해왔습니다. 사용자가 ID, PW 를 서버에 전달하면 서버는 그 값을 가지고 있다가 다음에 사용자가 동일한 ID, PW 로 접근하게되면 그에 대한 데이터를 사용자에게 제공하게됩니다. 쿠키와 세션 HTTP 통신은 비연결성(conectionless) 의 특성을 지니기 때문에 한번 통신이 일어나고 난 후에는 통신이 끊어지게 됩니다. 즉 ID, PW 를 통해서 사용자를 인증했다고 해서 다음 .. 2021. 3. 18.
우리는 어떻게 인터넷을 사용할 수 있는걸까 우리는 평소 검색해야하는 일이 있을 때 구글이나 네이버에 접속해서 검색창에 단어를 입력하여 검색합니다. 우리가 이러한 행동을 할 때 내부적으로는 어떤 일이 일어나는지 전반적으로 알아보려고 합니다. OS 우리가 컴퓨터의 프로그램들을 이용하기위해서는 반드시 OS(Operating System)가 필요합니다. OS는 컴퓨터의 자원을 효율적으로 관리하고 응용프로그램이 동작할 수 있는 환경을 만들어줍니다. 평소에 쓰는 크롬 브라우저도 OS 위에서 동작하는 응용프로그램중 하나입니다. 클라이언트와 서버 웹 페이지에 접속하려면 웹 브라우저가 필요합니다. 네이버의 메인페이지의 정보는 우리의 컴퓨터안에 저장되어있지 않습니다. 네이버의 웹사이트 정보는 네이버의 웹 서버에 저장되어있기 때문에 우리가 브라우저에게 네이버의 주소.. 2021. 3. 4.
파이어베이스로 웹사이트 배포하기 웹사이트를 제작하고 배포하는 과정을 CS 개념에 기반하여 알아보는 글입니다. 나만 아는 웹사이트? 사이트를 아무리 멋지게 만들고 화려한 기능을 추가한다고 해도 사용해줄 유저들이 없다면 의미가 없습니다. 우리가 만든 웹사이트를 다른 사람들도 이용할 수 있게 하기 위해서는 반드시 배포라는 과정을 거쳐야 합니다. 웹서버가 필요합니다 자신의 컴퓨터를 웹서버로 사용하여 사이트를 배포할 수도 있습니다. 하지만 컴퓨터의 전원이 꺼지면 사이트도 자동으로 내려가게 되므로 사람들이 많이 이용하는 사이트라면 컴퓨터의 전원을 24시간 켜둬야 하는 부담이 있을 수 있습니다. 이러한 일들을 대신 해주는 업체들이 바로 웹 호스팅 업체입니다. 인터넷에 연결된 컴퓨터 하나를 호스트라고 부르는데, 이 컴퓨터 하나에 공간을 쪼개서 호스팅.. 2021. 2. 27.
HTML Canvas Canvas를 활용한 객체지향 맛보기 위 포스팅은 js class 에 대한 기본 지식을 바탕으로 진행됩니다. class 에 대해서 잘 모르시는 분들은 이전 포스팅을 참고해주세요! Canvas란? 웹 환경에서 그래픽을 표현하기 위한 API로 그림판에 그림을 그리듯이 그래픽을 렌더링하는 것이 특징입니다. 간단한 게임 만들어보기 아래와 같이 HTML 코드를 작성하고 브라우저가 로딩되면 캔버스 노드를 불러오는 코드를 작성해줍니다. /** index.js */ window.onload = () => { const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); } 캔버스에는 그래픽을 표현할.. 2021. 2. 12.
[C언어] 문자열에 포함된 정수들의 합 문제 영어와 정수를 포함한 문자열을 입력받고, 문자열에 포함된 정수들의 합을 구하시오. (문자열의 길이는 10을 넘지않는다.) 입력 예시 ab23 출력 예시 5 10개 이하의 문자열을 입력받고 그 안에서 숫자를 찾아 전부 더해서 출력하면 된다. ​ 이때, 문자를 숫자로 변환하는 코드가 필요한데, C언어에서는 문자끼리 연산하게되면 그 문자의 아스키코드 값으로 연산이 이루어 진다. 예를 들어 "3"(51) - "1"(49) 는 2이다. "3" 이 "1" 보다 아스키 코드 상으로 2칸 앞에 있기 때문인데 이를 이용해서 우리는 문자를 숫자로 변환할 수 있다. 기존 (문자 N) - (문자 0) 의 연산을 진행하게되면 문자 N과 문자 0의 아스키 코드상의 차이값이 나오게 된다. 예를들어 "5" - "0" = 5 이.. 2021. 1. 4.
[C언어] 마름모 출력하기 문제 정수 N을 입력받는다. 그 후, 가로, 세로가 각각 N의 길이를 가진 마름모를 * 문자를 사용하여 그려서 출력하시오. 제약조건 - N은 자연수이며 홀수로 가정한다. - 각 줄의 두 번째 별(즉, 마지막)이 출력된 후의 공간에는 공백이 출력되지 않는다. 입력 예시 7 출력예시 * * * * * * * * * * * * #include int main(void) { int n, k; scanf("%d", &n); for (int i=0; i0; j--){ printf(" "); } printf("*"); for(k = 0; k=0; i--){ for(int j= (n - i*2) / 2; j>0; j--){ printf(" "); } printf("*"); for(k = 0; k 2021. 1. 4.
[Flutter] IOS에서 도로명 주소 Webview 띄우기 ⚠️ 발생한 문제 pub.dev/packages/kopo kopo | Flutter Package Kopo package can search for Korean postal addresses using the following postal code search services. If necessary, you can use the English address by clicking the View English button. pub.dev 위에 있는 라이브러리를 이용하여 주소 찾기 웹뷰를 띄우려고 시도했지만 웹뷰 안에 내용이 로드가 되지않았다. 🤫 시도한 방법 io.flutter.embedded_views_preview Info.plist 파일에 아래 내용을 직접 추가했지만 빌드를 돌릴때 마다 해당 내용이.. 2021. 1. 4.