본문 바로가기

전체 글379

chapter 3. 데이터 보관하기 (1) ch3. 데이터 보관하기 1. 다양한 데이터의 종류 C#은 다양한 종류의 데이터 형식을 제공한다. 데이터 형식은 기본 데이터 형식과 복합 데이터 형식으로 나뉘는데 값 형식과 참조 형식으로도 나눌 수 있다. 2. 변수 변수(코드) : 값을 대입시켜 변화시킬 수 있는 요소 변수(메모리) : 데이터를 담는 일정 크기(데이터형식에 따라 달라짐)의 공간 -> C# 코드를 작성할 때 메모리를 생각해야한다. 변수 선언 변수를 선언한다 : 컴파일러에게 변수에 필요한 메모리 공간을 예약해달라고 알림 컴파일러는 int 형식을 위해 메모리 공간을 할당하고 이 공간을 x 가 사용할 수 있도록 준비 변수 x 에는 대입 연산자를 통해 데이터 입력 가능 메모리 공간에 데이터 100 기록 int x = 100; 처럼 선언과 초기화를.. 2023. 4. 16.
chapter 1. 프로그래밍 언어의 역사 1. 프로그래밍 언어의 역사 1-1. 컴퓨터의 시작, 프로그래밍의 시작 프로그래밍 : 프로그램을 제작하는 일 최초의 컴퓨터 : 에니악 (전기 배선 작업) 에니악은 최초의 컴퓨터로 전기 배선 작업(프로그래밍)을 했다. 당시 뛰어난 계산능력을 가지고 있었지만 심각한 발열문제로 반나절은 운영할 수 없었고, 프로그램을 변경하려면 약 6000개의 배선을 교체해야했다. 그래서 에드박이 탄생했다. 개선된 구조와 향산된 신뢰성을 갖추고 중앙처리장치, 기억장치, 프로그램, 데이터로 이루어진 슈퍼컴퓨터부터 스마트폰까지 모든 현대 컴퓨터의 조상. 에드박 이후에도 1950년대 전까지 프로그램 방식은 CPU가 직접 해독하고 실행할 수 있는 0과 1의 비트 단위로 쓰이는 기계어를 사용하였다. 그랬더니 사람이 직관적으로 이해하기 .. 2023. 4. 16.
Modbus 1.Modbus란? modicon이라는 회사에서 만든 시리얼 통신 프로토콜 시리얼 통신을 원활하게 하기 위해 지키기로 한 규약입니다. 제조공장이나 기계들을 자동하고 제어하는 목적으로 사용되는 PLC(프로그래머블 로직 컨트롤러)들과의 통신에 사용할 목적으로 만들어졌는데 PLC 통신규약이 모두 달랐기에 편리성을 위해 통일시키고자 생겨났습니다. ModBus 통신 방식은 서로 다른 장비라고해도 프로토콜은 정해져 있기 때문에 ModBus 통신 방식을 지원하는 장비라면 통신 프로토콜을 새로 맞출 필요가 없습니다. # PLC(programmable logic controller) 프로그램 가능 논리 제어기의 약자로, 산업 현장에 자동제어 및 감시 하기 위한 제어장치 제조공장이나 기계들을 작동하고 제어하는 목적으로 사.. 2023. 4. 16.
명령어의 구조 개발자가 작성한 코드는 고급언어로 작성이되는데 컴퓨터가 알아듣게 하기 위해서는 저급언어로 변환을 시켜줘야한다. 저급언어는 기계어와 어셈블리어로 나뉘는데 이런 명령어로 변환이 되어야한다. 명령어에 대해서 자세히 알아보자 명령어는 연산코드와 오퍼랜드로 이루어져있다. 1. 연산코드 연산코드는 명령어가 수행할 연산이다. 연산자라고도 한다. 연산코드가 담기는 색칠된 부분을 연산코드필드라고 한다. 연산코드의 유형을 4개로 나눈다면 1) 데이터전송 2) 산술/논리연산 3) 제어 흐름 변경 4) 입출력제어 가 있다. 2. 오퍼랜드 오퍼랜드는 연산에 사용할 데이터 또는 연산에 사용할 데이터가 저장된 위치를 말한다. 색칠되지 않은 부분을 오퍼랜드필드라고 한다. 오퍼랜드필드에 데이터를 직접 명시하기에는 명령어의 길이로 크기.. 2023. 3. 23.
컴파일언어 인터프리터언어 프로그래밍 언어에는 저급언어와 고급언어가 있다. 개발자는 고급언어(python, c, java 등)을 통해 코드를 작성하는데 이는 컴퓨터가 알아듣지 못하기 때문에 컴퓨터가 알아들을 수 있는 저급언어로 변환해주어야 한다. 고급언어를 저급언어로 변환해주는 방식은 2가지가 있다. 1. 컴파일 방식 2. 인터프리트 방식 컴파일 방식으로 작동하는 프로그램언어를 컴파일 언어라고 하고 인터프리트 방식으로 작동하는 언어를 인터프리터 언어라고 한다. 컴파일 언어와 인터프리터 언어에 대해 좀 더 자세히 알아보자 1. 컴파일 언어 컴파일러에 의해 소스코드 전체가 저급언어로 변환되어 실행되는 고급언어이다 대표적인 컴파일 언어로는 C가 있다. 컴파일 언어로 작성된 소스코드는 코드 전체가 저급 언어로 변환되는 과정을 거치는데 이.. 2023. 3. 23.
이터레이터(iterator), 제너레이터(generator) 1. 이터레이터(iterator) 파이썬에서 여러개의 요소를 가지는 컨테이너(list, tuple, set, dictionary, 문자열)에서 각 요소를 하나씩 꺼내 어떤 처리를 수행하는 간편한 방법을 제공하는 객체다. for 문은 먼저 주어진 컨테이너 객체에 대해 iter() 메소드를 호출해서 이터레이터 객체를 구한다. 그리고 나서 내부의 요소를 하나씩 가져오기 위해 __next__()를 호출한다. 이 메소드는 하나의 요소를 반환하고 다음 요소를 가리키는데 이 때 더 이상 가져올 게 없으면 Soplteration 예외를 발생시킨다. >>> for element in [1,2,3]: print(element) 1 2 3 >>> for element in (1,2,3): print(element) 1 2 .. 2023. 2. 23.
신규 아이디 추천 신규 아이디 추천 https://school.programmers.co.kr/learn/courses/30/lessons/72410 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 .. 2023. 2. 14.
2016년 2016년 https://school.programmers.co.kr/learn/courses/30/lessons/12901 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.. 2023. 2. 10.
연속합 (1912) 1912 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력 첫째 줄에 답을 출력한다. 답 n = int(input()) a = list(map(int, input().split())) lst = [a[0]] for i.. 2023. 2. 8.
23. 02. 06(TCP, UDP) tcp와 udp에 대해 정리를 해봤다 정처기 공부할 때 봤던 개념인데 지금 와서 다시 보니 새롭다 뭔가 좀 알 것 같기도 하다 다음에 더 자세히 공부해봐야겠다 공부는 해도해도 끝이 없다 https://sizzang97.tistory.com/434 TCP와 UDP 연결의 신뢰성, 송신의 안정성, 패킷유실 tcp와 udp는 OSI 7계층들 중 전송계층에서 사용되는 프로토콜입니다. 즉, 데이터의 전달을 담당하며 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 sizzang97.tistory.com 2023. 2. 6.
TCP와 UDP 연결의 신뢰성, 송신의 안정성, 패킷유실 tcp와 udp는 OSI 7계층들 중 전송계층에서 사용되는 프로토콜입니다. 즉, 데이터의 전달을 담당하며 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당합니다. TCP와 UDP 둘 다 포트 번호를 이용하여 주소를 지정한다는 공통점을 가지고 있지만 차이점이 있는데 각각에 대해 알아보자 TCP란? TCP는 연결 지향적 프로토콜입니다. (클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜) 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스입니다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트 라는 블록단위)를 안정적으로, 순서대로, 에러없이 교환할 수.. 2023. 2. 4.
23. 01. 30 (ERROR: error while removing network: network <> has active endpoints.) docker 복습을 하던 중 gunicon을 사용해서 django 프로젝트 컨테이너 생성하는데 오류발생... Dockerfile과 docker-compose.yml을 작성한 다음 컨테이너가 잘 동작하는지 확인하기 위해 sudo docker compose up --build -d를 했더니 ERROR: error while removing network: network has active endpoints. 요 에러가 떴다.. 그래서 down 시키고 다시 하려고 sudo docker compose down을 했더니 ⠿ Network ubuntu_default Error 요 에러가 떴다..ㅎㅎ.... 마음대로 down도 못시키는...후... 이러한 에러는 컨테이너를 중단하기 전에 docker-compose 서.. 2023. 1. 30.
728x90