컴퓨터과학 26

파이썬 정리 (2)

파이썬 정리 (2) 날짜/시간 활용하기 from datetime import datetime time = datetime.now() now.year, month, day, hour ... 등이 있다. 기억해야할 예제 1> format 함수로의 매개변수 대입 때 줄 바꿈 print("{}년 {}월 {}일 {}시".format( data.year, data.month, data.day, data.hour )) 2> if 문 다중 or문에서 줄 바꿈 if number == 1 \ or number == 3 \ or number == 5 \ or number == 7 \ or number == 9: print("홀수") 교재에서 설명되지 않아 정확한 것은 아닐 수도 있으나, 함수로 매개변수 전달은 줄 바꿈에 영..

컴퓨터과학 2024.01.07

파이썬 정리 (1)

파이썬 정리 (1) 21년도 1학기에 파이썬을 이용한 자료구조와 알고리즘을 수강하였다. 전공의 회의감 끝에, 적성에 맞는 개발자의 길에 들어서기로 했고 우연히 이어드림 스쿨 모집 광고를 봤다. 파이썬을 배운 경험과 AI, 메타버스, 블록체인 등 4차산업혁명에 자주 나오는 키워드에 관심이 많았기에 좋은 기회라고 생각하고 이를 준비하고자 공부한 것을 요약하는 포스팅을 하기로 했다. 문자열 만들기 코틀린과 다르게 ", ' 둘 다 사용하능하다 여러 줄 문자열을 이용하면(""" """) 텍스트의 줄바꿈이 문자열에 포함된다. 코틀린에서는 자동으로 앞, 뒷줄이 사라지는 함수가 추가되지만 파이썬에서 이를 구현하러면 """\ asdf zcxv\ """ 와 같이 작성하면 된다. IndexError 예외 index out ..

컴퓨터과학 2024.01.07

[소마] 블록체인 멘토링

Blockchainblock + chain강력한 변조 방지 시스템특성모든 멤버에게 공유불변, 레코드는 추가만 가능트랜잭션, 레코드를 모든 유저가 검증레코드의 암호화채굴POWProof Of Work비트코인의 채굴방식, 채굴기를 통해 작업증명을 하고 거래내역을 정리하므로 보상을 받는다.블록헤더의 Nonce값을 무작위로 생성하고 SHA256(Hash function)에 넣어 해쉬값을 만든다. 반환된 해쉬값의 앞자리의 '0'의 개수가 채굴 난이도에 부합되면(즉, 정해진 값보다 작으면) 검증이 끝나고 거래내역이 기록된다.채굴 난이도는 검증이 끝날 수 있는 예상시간과 환경에 따라 결정된다.참고 : https://www.banksalad.com/contents/쉽게-설명하는-블록체인-블록체인의-원리-채굴-해시-그리고..

컴퓨터과학 2024.01.07

면접 대비 멘토링

면접 대비 멘토링 국내 IT 서비스 회사 면접 준비, CS편 이런 질문은 자주 나오네? 어디까지 답변해야할까? 또는 상대적으로 남들이 준비하는 것보다 여기까지 손코딩을 준비하자 어떤 것을 공부할까? 운영체제, 자료구조, 알고리즘, 네트워크, 데이터베이스 🍎 운영체제 가장 빈번하게 Thread vs Process 프로세스를 공장에 비유한다면 공장의 일꾼을 쓰레드에 비유할 수 있다. 쓰레드는 고유한 스택을 가지며 다른 자원은 프로세스에서 공유한다. 그리고 컨텍스트 스위칭이 빠르다. 프로세스 메모리 구조 → 코드, 스택, 힙 IPC를 통해 프로세스 간의 자원 공유가 가능하다. Cache? 주기억장치에서 빈번하게 조회하는 데이터를 cache에 보관하여 조회 효율을 높인다. locality, hit rate ca..

컴퓨터과학 2023.12.12

OpenSSL을 사용해서 localhost와 https로 통신하자

OpenSSL을 사용해서 localhost와 https로 통신하자 목표spring security의 http basic을 이해하고 localhost와 https로 통신해본다. 환경스프링 부트 3.2.0> Dependencies  - spring-boot-starter-web  - spring-boot-starter-security https란?http 프로토콜을 이용한 통신에서 데이터를 암호화하여 안전하게 통신하게 한다. https를 사용하면?클라이언트가 엔드포인트를 호출하면서 받은 응답이 인증 서버에서 보낸 것이고 누구도 통신을 가로채지 않았다는 사실을 알 수 있다. 실습spring security의 http basic 이해하기hello을 응답하는 엔드포인트를 생성하자.@RestControllerpub..

컴퓨터과학 2023.11.29

[운영체제] 개요

운영체제 개요운영체제란? computer system을 운영하는 software다. Information?I(x) = -log_2(P(x)), (단, P는 사건(x)가 일어날 확률밀도함수) 정보의 단위모집단이 on, off이고 사건 발생의 기대값이 동일할 때, 위 I(x)의 값이 1이 된다.이처럼 0과 1의 상태를 가지는 정보를 1 bit라고 한다.  컴퓨터의 정보 처리 컴퓨터는 정보의 상태를 변환(0 -> 1, 1 -> 0)으로 정보를 처리한다.부울 대수(NOT, AND, OR)로 논리 게이트를 구현한다.NAND만으로 정보를 처리할 수 있음이 증명되었다.덧셈: 반가산기 전가산기뺄셈: 2의 보수곱셈과 나눗셈: 덧셈과 뺄셈의 반복실수: 부동소수점함수: GOTO컴퓨터는 부울 대수와 NAND를 이용해서 계산가..

컴퓨터과학 2023.10.25

리눅스

리눅스 aws pem 키를 잘 사용하는 방법은? -> 한 PC마다 1개의 키를 관리 EC2 연결 방법 ec2 인스턴스 연결: 웹에서 연결하는 방식 session manager 백도어, ec2를 모니터링하기 위한 에이전트, ssm-agent로 접속하는 것. 기본적으로는 접속할 수 없다. role을 통해서 추가적으로 허용하는 것. 권장되지 않는다. ssh client: pem은 개인키. 노출된 키를 compromised-key라고 한다. 다중 사용자 윈도우는 여러 명이 한 계정에 접속할 수 없다. 리눅스는 여러 명이 한 계정에 접속할 수 있다. 사용자 whoami -> ubuntu(현재 사용자) sudo whoami -> root 사용자 만들기 adduser -> 오로지 root만 만들 수 있다. sudo ..

컴퓨터과학 2023.09.17

OIDC, OpenID Connect 누구냐 넌

OIDC OpenID Connect spring security로 구글 OAuth 설정을 하면 기본 scope로 "openid, profile, email" 위 3가지가 설정된다. OAuth로 다 끝난 줄 알았는데 OIDC라고 뭐가 또 나온다. 짜증나니깐 간단하게 알아보자. 우선, OAuth를 짧게 복습해보자. OAuth, 간단하게 알아보자 OAuth, 간단하게 알아보자 Open Authorization 대형 사이트로 대신 로그인하는 것. 대부분 잘 알려진 사이트로 로그인하는 것으로 알고 있을 것이다. 사실은 외부사이트에서 제공하는 API로 사용자의 정 jujemu.tistory.com 그러니깐 OAuth는 신뢰할 수 있으며 많은 서비스를 제공하는 사이트를 통해 인증/인가를 해결한다. 위 사이트의 예로 ..

컴퓨터과학 2023.07.20

OAuth 동작 원리

OAuth 동작 원리 이전 포스팅에 이어서 OAuth의 동작원리를 알아보자. OAuth, 간단하게 알아보자 OAuth, 간단하게 알아보자 Open Authorization 대형 사이트로 대신 로그인하는 것. 대부분 잘 알려진 사이트로 로그인하는 것으로 알고 있을 것이다. 사실은 외부사이트에서 제공하는 API로 사용자의 정 jujemu.tistory.com 자, 다시 이해관계자들을 간단하게 살펴보자. Client: 내가 만든 웹사이트 Auth server: Github Resource server: 역시 Github Resource owner: 우리 웹사이트를 이용하려는 사용자 쉽게 설명하기 위해서 Client는 우리로, Auth와 Resource server는 깃헙으로, Resource owner는 사용..

컴퓨터과학 2023.07.07

OAuth, 간단하게 알아보자

OAuth, 간단하게 알아보자 Open Authorization 대형 사이트로 대신 로그인하는 것. 대부분 잘 알려진 사이트로 로그인하는 것으로 알고 있을 것이다. 사실은 외부사이트에서 제공하는 API로 사용자의 정보를 받아와 서비스 운용에 사용할 때 쓰이는 표준이다. 그래서, 뭔데 사용자의 정보를 이미 가입된 외부사이트에서 받기 위해 일종의 통행권을 받아 저장하는 것. 자세히 말하자면, 잘 알려진 사이트로 구글을 예로 들겠다. 웹 사이트를 만든다고 하자. 우리 사이트는 일정관리하는 서비스를 제공한다. 어떤 사용자는 구글 캘린더에 일정을 기록하였고 이 일정으로 관리하고 싶어한다. 우리는 일정을 받기 위한 방법으로 사용자의 아이디와 비밀번호를 받을 수 있다. 사용자 대신 구글에 로그인해서 캘린더에 접근하는..

컴퓨터과학 2023.07.07