no image
[OS/공룡책] Ch1. Introduction
Overview 운영체제 : 컴퓨터 사용자와 하드웨어간의 중개자 역할을 수행 목적 : 사용자가 편리하고 효율적으로 프로그램을 실행할 수 있는 환경 제공 컴퓨터 하드웨어를 관리하는 소프트웨어 Why study operating system? 대부분의 코드가 운영 체제 위에서 실행되기 때문에 운영 체제의 작동 방식에 대한 지식은 적절하고 효율적이며 효과적인 보안 프로그래밍에 매우 중요하다! 1. What Operating Systems Do 컴퓨터 시스템 하드웨어(hardware) : 시스템의 기본 컴퓨팅 리소스 제공 운영체제(operating system) : 하드웨어 제어와 응용 프로그램 간의 하드웨어 사용 조정 운영체제는 다른 프로그램이 유용한 작업을 수행할 수 있는 환경을 제공한다. 응용 프로그램(a..
2022.07.27
[Python/수학] 최대공약수(GCD), 최소공배수(LCM)
최대공약수 math 내장 함수 사용하기 math.gcd(n, m) 유클리드 호제법 | a와 b 의 최대공약수는 (a를 b로 나눈 나머지)와 b 의 최대공약수와 같다. # a a) : a,b = b,a while(b!=0): a=a%b a,b=b,a 큰 수를 작은 수로 나누고 나누어 떨어질 때까지 계속 반복 최소공배수 math 내장 함수 사용하기 math.lcm(n, m) python 3.9부터 지원된다! 직접 구현하기 import math def lcm(a,b): return (a * b) // math.gcd(a,b)
2022.06.23
no image
Programmers. 거리두기 확인하기 파이썬
Programmers. 거리두기 확인하기 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr [파이썬(python) - DFS & BFS] 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 ..
2022.06.23
no image
[Python/수학-정수론] 에라토스테네스의 체
에라토스테네스의 체 다수의 자연수에 대하여 소수 여부를 판별 1. 2부터 N까지의 모든 자연수를 나열한다. 2. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 3. 남은 수 중에서 i의 배수를 모두 제거한다.(i는 제거하지 않는다.) 4. 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다. 이후 남아있는 수들은 모두 소수가 된다. python 구현 코드 import math n = 1000 array = [True for _ in range(n + 1)] # 소수일 경우 True, 소수가 아닐 경우 False로 표현 for i in range(2, int(math.sqrt(n)) + 1): if array[i] == True: j = 2 while i * j m c. a >..
2022.06.02
no image
[알고리즘 대비 - 이코테] 8. 최단 경로
최단 경로(Shortest Path) 가장 짧은 경로를 찾는 알고리즘 한 지점에서 다른 특정 지점까지의 최단 경로 구하기 모든 지점에서 다른 모든 지점까지 최단 경로 구하기 간선 간의 가중치가 있을 경우 활용 그리디, DP의 한 유형 다익스트라(Dijkstra) 특정 한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산 ⭐️ 음의 간선이 없는 경우 사용 현실 세계의 프로그래밍을 할 때 많이 사용 매 상황 가장 비용이 적은 노드를 선택하므로 그리디 알고리즘으로 분류하기도 한다. 한번 방문한 노드일 경우 이후에 해당 노드에 대해 최단 경로가 다시 갱신되는 일은 없다. 1. 출발 노드 설정 2. 최단 거리 테이블 초기화(기본 무한) 3. 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드 선택 4. 해..
2022.05.25
no image
[AWS/RDS] RDS TimeZone 변경하기
⚠️ Problem AWS RDS로 기본 설정으로 DB 생성 시, 시스템 시간이 UTC 로 저장되어 보기 불편하다. 타임존 설정을 통해 아시아/서울 로 바꿔준다. ✨ Solve RDS → 사이드 바 → 파라미터 그룹 기본적으로 디폴트 파라미터 그룹이 있는데, 디폴트 파라미터 그룹의 경우 편집이 불가능하다. → 새로 생성해줘야 한다 파라미터 그룹 생성 후 → 검색 탭에 time_zone 검색 time_zone 항목 선택 후, 파라미터 편집 선택 이후 time_zone : Asia/Seoul 로 바꿔주고 변경 사항 저장 ! 다시 RDS 탭으로 가서 수정 선택 추가 구성 → DB 파라미터 그룹 → 새로 생성한 파라미터 그룹으로 지정 DB 재부팅 타임존 변경 확인!
2022.05.20
[C++] 시스템 소프트웨어 개발
시스템 소프트웨어 개발(Development Assistance Guidance for system software) DAG(Development Assistant Guide) Scalability Scalability 시스템에 들어오는 워크로드가 증가할때, 해당 시스템을 처리하는 능력 | Ex. 기존 시스템에서의 작업량이 1이었는데, 이가 2, 100, 1000과 같이 부하가 커졌을 때도 시스템 처리가 가능한가? But, 이상적으로 하드웨어적, 네트워크적 부하를 무한대로 감당할 수 있는 시스템은 존재 하지 않는다. 🌟 따라서 프로그래밍의 전과정에서 이를 해결하는 게 가장 중요! Scalability의 향상 방법 1. System Call Awareness 시스템 콜 시간 : 200 usec ~ 1000..
2022.05.20
no image
[Spring] Spring Security
Spring Security Spring 기반의 애플리케이션 보안을 담당하는 스프링 하위 프레임워크 💡 Warm Up Principal : 리소스에 접근하는 대상 Authentication : 인증 - 사용자가 본인이 맞는 지 확인 who are you? Authorization : 인가 - 사용자가 리소스에 접근할 수 있는지 확인 what are you allowed to do? Web Security 클라이언트는 애플리케이션에 요청을 보내고 컨테이너는 요청 URI의 경로를 기반으로 어떤 필터와 서블릿을 적용할 지 결정한다. 세부적으로는 위와 같은 구조로 매핑되는 데, Spring Security의 내부 필터의 사용에 대해서 프로그래머가 관여할 필요는 없다. 애플리케이션내 모든 @Bean 에 Sprin..
2022.05.19
no image
[Java] 웹 개발 개론
Web HTTP(Hypertext Transfer Protocol) HTML과 같은 하이퍼미디어 문서를 전송하기위한 애플리케이션 레이어 프로토콜 URI(Uniform Resource Identifier) 특정 리소스를 식별하는 통합 자원 식별자 HTML(Hyper Text Markup Language) 하이퍼 미디어를 표현하기 위한 언어 REST(Representational State Transfer) Client - Server Client : 데이터를 사용자에게 표시하거나 이에 대한 후속 작업을 처리한다. Server : 데이터를 저장 및 조작하고 효율적인 방식으로 클라이언트에게 제공한다. Stateless 모든 정보는 요청을 통해서만 이루어지며 요청에 대한 정보는 서버에 저장하지 않는다. Cach..
2022.05.17