Gom3rye

파이썬 프로그래밍 본문

현대 오토에버 클라우드 스쿨

파이썬 프로그래밍

Gom3rye 2025. 5. 20. 09:30

메모리 db redis 쓸 줄 알아야 한다.

aws로 웹 접속하고 실제 작업은 private 이용해서

코테 준비!!

카카오, 현대차 → 고랭 쓴다, Jenkins

  • 배포 자동화 프로젝트
  • 로그 분석 시스템 개발 프로젝트 (퍼블릭 클라우드를 쓰는 사람들은 트래픽이 증가하거나 감소하는 경우를 모니터링해서 적절한 대응을 해줘야 한다.)
  • 클라우드 환경 기반 데이터 파이프라인 자동화 프로젝트 → 이 직무 열어줬다.
  • 하이브리드 클라우드를 이용한 메시지 발송 이중화 프로젝트 (프라이빗은 언제든지 내가 의도하지 않게 죽을 수 있으니까 하나의 클라우드에 배포된 메시지 발송 시스템에 장애가 발생하더라도 이를 감지하여 다른 클라우드에 배포된 메시지 발송 시스템을 이용하여 메시지를 발송할 수 있어야 한다.)

자료구조책 보기 for 코테

포트포워딩하면 내부 접속이 안 됨.

Rust, 언어를 배우려면 지금 인기있는 것 보다 더 빨리 봐야 대우를 해준다.

인터프리터 → 중간에 오류가 있어도 모를 수 있음 → 실행이 중요한 것

컴파일러 → 오류 검사 먼저 싹 다 하기 때문에 모를 수 없음 → 속도가 중요한 것

c++ 의 치명점 한계 : 똑같은 걸 여러번 만들어야 한다. Ex) Mac용, Windows용

배달의 민족 - TDD (테스트 주도 개발, 테스트 코드가 document가 된다.)

코테에서 파이썬은 만들어진 라이브러리가 많아 유리 → 기업 코테에서 라이브러리 제한있는지 확인해보기

웹 브라우저 안에서 동작하는 언어는 하나밖에 없음 - Javascript

Mongo DB(Javascript 언어 사용)

Express.js

React

Node.js

UNIX < Mac OS, Linux < Android, Linux < Web browser

spring - 싱글톤으로 그냥 만들어져 있는 것을 갖다 쓰는 것, java 몰라도 됨

금융권은 코테 javascript 지원 안함

리눅스는 파이썬 커널을 모른다.

언어 개발 환경은 번역기, IDE만 있으면 된다.

오라클 - 라이센스 없으면 안 받아줌.

외국회사 certificate 2개 밑이면 인정 안 해줌

PATH : 명령어 찾는 위치

리눅스는 gui 안쓰기 때문에 명령어 찾아서 써야 하는데 PATH에 없으면 찾으러 다녀야 하고 또 깔아야 하고 그럼 → 자주 쓰는 프로그램들은 PATH에 추가하는 것이 낫다.

서버에 gui 까는 경우 별로 없음 → 내가 쓸 수 있는 메모리가 부족해지니까 → cli에 익숙해지자.

윈도우는 path 설정 물어봐주는데 리눅스는 그런게 없어서 다 경로 설정해줘야 한다.

  • 컴퓨터 빌려주는 것 - 아이아스 (국내)
  • 개발 환경(플랫폼)을 빌려주는 것 - 파쓰 → 코랩, 구름(도구 설치 안하고 코테 보기), 프로그래머스가 파쓰 사업을 했었는데 지금은 안함 (이거해서 AWS 계정을 만들어주면 컴퓨터 안 빌려줘도 될 텐데)
  • 서비스를 판매하는 것 - 사쓰 (국내) → 삼성sds, lg cns, sk cnc, 현대 오토에버

파이썬 프로젝트 종류

-가상 환경을 이용하는 경우 → 배포를 하겠다. 공부용이 아니다. (vm, vbox 쓰는 이유: 운영체제를 하나 더 써보겠다.) ex. 제품을 만들겠다. → 가상환경 만드는 것이 낫다.

  • 이 프로젝트를 외부로 가져갈 때는 그 곳에서 가상환경을 다시 설정해야만 실행이 됩니다.

-가상 환경 이용하지 않는 경우 (개발환경과 실행환경이 달라서 그럼) → 난 이거 배포할 생각이 없다.

  • 현재 컴퓨터에서만 실행을 하거나 나중에 환경설정을 별도의 파일에 작성하는 경우

DevOps - 개발환경, 테스트환경, 실행(운영, 배포)환경을 1개로 하자! - 버전의 문제, 환경 다름의 문제를 해결

→ k8, docker가 나온 이유들, 여기서 동작하도록 하는 것, 중간에 os가 바뀌어도 프로그램을 다시 짤 필요가 없음 → 그래서 중간애들이 생긴 것

IaC: Infrastructure as code 인프라도 코드로 만들어버리자.

가상환경에 다 설치해서 옮길 때 가상환경을 옮긴다. 지금은 도커나 쿠버네티스에 명령어를 적어놓고 알아서 설치되도록 한다. ex. 도커 파일에 pip install을 쓴다.

가상환경 활성화

  • Scripts 디렉토리의 activate 명령 실행 → (가상환경 이름) 경로 보인다.
  • 파이썬 가상환경을 설정할 때 PowerShell이 명령어를 제대로 처리하지 못하는 경우가 있음 → cmd 창에서 python -m venv (가상환경 이름) 치자.
  • cd .. 상위 디렉토리로 이동

용어나 이게 어디에 쓰이는 지를 아는 게 중요한 거지 하는 방법은 이후에 구글링이나 gpt한테 물어보면 된다.

프로그램 = data + algorithm

literal(개발자가 직접 입력한 데이터) : 한 번이라도 쓰이면 메모리 공간에 안 없어진다.

variable: 이름이 붙어져 있는 것, 데이터를 재사용하기 위해서 데이터를 저장한 공간에 붙인 이름

function : 코드 모임

class : 목적 모임 (자동차) (class : 모델 하우스, instance : 집, 꾸밀 순 있지만 전체적인 틀을 바꾸진 않음)

  • 자바는 클래스를 직접 못 쓰지만 파이썬은 클래스를 쓸 수 있음 → 안전한 프로그램 만들기 위해서는 자바로 만든다.

module : 파일

package : 모듈의 모임 - 비슷한 용도로만 묶자

초보자와 경력자의 차이는 코드 리뷰 & 커스터마이징 → 이게 애자일, 린(도요타 자동차가 성공한 이유) : 일단은 만들어보는 것

; - 여기까지는 하나의 명령으로 실행해주세요

파이썬 코딩

  • 라인 단위로 번역해서 실행하므로 한 줄에 하나의 명령이 있다면 종료 부호는 필요하지 않음
  • 프린트 문으로 어디까지 되었는지 상태 확인 많이 하자. → 디버깅 습관화
  • “”” “”” : 주석이 아니라 문자열 상수를 만들어서 아무 일도 하지 않는 것처럼 보이도록 하는 것 (정확한 주석이 아님)
  • 인코딩 : 문자를 컴퓨터에 저장할 수 있는 코드로 변경하는 작업 (내 눈에 어떻게 보여줄 거냐
  • 디코딩 : 컴퓨터에 저장된 코드를 출력하기 위해서 문자로 변경하는 작업
  • utf-8, ms940, ct, euckr → 남의 코드 가져왔는데 깨진다 : 인코딩, 디코딩 문제
  • 예약어 : 문법적인 용도로 사용되고 있는 단어 또는 문자
  • import keyword, print(keyword.kwlist) 하면 알 수 있다.
  • 이름
    • 예약어 : 언어가 기능 부여 → 기능 변경 불가능
    • 사용자 정의 이름 : 개발자가 기능 부여 → 기능 변경 가능

포트폴리오 내는 것

  • 에러 노트나 과정을 작성하는 것이 낫다.

데이터

  • scala : 1개
  • vector : 여러 개 (0개 이상)- 동일한 형태 여러 개

class & instance : 여러 개 - 동일해도 되고 달라고 가능

__ : 숨김(사용 방법이 다름)

연산자 오버로딩

0.1을 1000번 더하기 → 컴퓨터한테 물어보면 100 안 나옴, 99.86 나올 것 → 대부분의 프로그래밍 언어는 소수를 문자열로 가지고 있는 경우가 많다.

ai 하는 분들 - 원본을 변경하지 않고 복사본을 항상 만들어 놓으라고 한다.

업데이트를 할 때 새로운 곳에 복제해서 하는 것, 그런 다음 안되면 얘를 되돌리고 되면 종료시킴 → 이렇게 해서 무중단 배포를 만드는 것

숫자 의 접근 방법 : direct (직접 할당)

문자열, 튜플, 리스트 의 접근 방법 : sequence (기준점으로 순서를 이용해 찾아가는 것)

사전 의 접근 방법 : mapping (이름을 붙여서 찾아가는 것, 속도는 이게 더 빠르다.)

set : 중복 불가

메모리는 크게 3가지로 나누어 볼 수 있다. (데이터가 들어가는 방법)

Ex) a=10, b=10

  • stack : 일시적인 영역 - 함수 → a의 주소, id가 저장됨
  • heap
    • 읽고 쓰기가 가능한 영역(동적 영역)
    • 읽기만 가능한 영역(static) → 10이 여기에 저장된다. (리터럴이 여기 들어간다.)

파이썬에서는 L 큰 의미가 없음, 왠만해서 메모리가 있는 한, 다 들어간다.

파이썬은 모든 자료형이 id → 파이썬은 위치를 기억하고 있지 데이터를 기억하고 있는 게 아니다.

list

  • 물리적으로 모든 데이터의 집합
  • 논리적으로 ‘비교 가능한’ 집합 → 같이 연산이 돼야 한다.(column, 열로 생각하면 쉬움)

tuple

  • 행 (서로 다른 것들을 마구 집어넣으면 된다.) → immutable 변경 불가능한 특징!! → 데이터 분석할 때 결과 줄 때 많이 쓰인다. ex) 회귀 분석

set

  • 중복 없는 집합

list, tuple, set, str, dict 등의 데이터 집합을 for을 사용해서 순차적으로 접근할 수 있다고 해서 iterable이라고 한다.

이름을 길게 만드는 습관을 들여라 → 한 눈에 알아볼 수 있게 Ex) add → integer add with integer

[숫자 ‘0’ : 48] < [‘A’ : 65] < [‘a’ : 97] (숫자보단 문자가 크고 대문자보단 소문자가 큼)

한글하고 영문 → 영문이 젤 작다.

1의 보수~ : 0과 1을 서로 바꿈

2의 보수 : 1의 보수에서 +1 (양수 ↔ 음수로 바꿀 때 사용)

-1 : 가장 큰 수 (1의 2의 보수)

⇒ find로 찾으려고 했는데 없었음 → -1을 리턴

⇒ 리스트 중에서 젤 마지막 출력하고 싶음 → [-1]

컴퓨터는 gate의 집합으로 만들어졌다. → and, or, not 계산을 제일 잘 한다. (젤 빠름)

  • 지울 때 → and 0 하면 된다. &
  • or | → 복사할 때 쓴다.
  • xor ^→ 같으면 0 다르면 1, 비교할 때 쓴다.

특정 키가 눌러졌는지 안 눌러졌는지 확인할 때도 and 연산을 한다.

데이터 분석할 때 위의 연산자들 많이 쓴다.

왼쪽으로 가게 되면 2배씩 늘어난다. (한 번 밀 때 마다)

2<<1 → 4

6<<2 → 24

type(데이터): 데이터의 자료형을 리턴

id(데이터): 데이터의 저장 위치를 구분하기 위한 코드를 리턴

자바 - 해시코드, 파이썬 - id

str은 immutable 입니다. 가리키고 있는 id를 바꾸는 거지 내용이 바뀐게 아니다.

→ s=”Hi”, s[0] = “K” 안됌.

728x90
반응형

'현대 오토에버 클라우드 스쿨' 카테고리의 다른 글

데이터베이스  (2) 2025.05.20
Web Programming  (0) 2025.05.20
파이썬 프로그래밍  (0) 2025.05.20
파이썬 프로그래밍  (0) 2025.05.20
파이썬 프로그래밍  (0) 2025.05.20