본문 바로가기

스터디-공부62

운영체제 1~2장 정리 슬라이드 K-DEVCON Daejeon 오프라인 스터디에서 사용한 슬라이드 자료입니다. 범위 및 핵심 내용 0. 개론 1. 서론 (1.4 까지만 다룸) 인터럽트 2. 운영체제 구조 시스템 콜 프로그램 실행 과정 운영체제 구조 운영체제 빌드 및 부트 과정 운영체제를 왜 공부해야 하는가 컴퓨터 과학에 종사하는 사람은 많지만 운영체제를 만들거나 수정하는 데는 소수만이 참여한다. 그렇다면 왜 우리는 운영체제와 그 작동방식에 대해서 공부하는가? 단순하게 거의 모든 코드가 운영체제 위에서 실행되므로 운영체제 작동방식에 대한 지식은 적절하고 효율적이며 효과적이며 안전한 프로그래밍에 중요하기 때문이다. 운영체제의 기본 지식, 컴퓨터 하드웨어 구동 방식 및 응용 프로그램에 제공하는 내용을 이해하는 것은 운영체제를 작성하는 사람들.. 2023. 8. 20.
문자열 매칭 수 계산 하나 빼기: 문자열을 편집하는 방법에는 세 가지 종류가 있다. 문자 삽입, 문제 삭제, 문자 교체. 문자열 두 개가 주어졌을 때, 문자열을 같게 만들기 위한 편집횟수가 1회 이내인지 확인하는 함수를 작성하라 예시 pale, ple → true pales, pale → true pale, bale → true pale, bake → false 문자열 매칭 수 >= 긴 문자열의 length - 1 이면 true를 반환하게 처리 import difflib def get_matching_character_count(str1, str2): matcher = difflib.SequenceMatcher(None, str1, str2) matching_blocks = matcher.get_matching_blocks(.. 2023. 8. 19.
문자열에 들어 있는 모든 공백을 '%20'으로 바꿔 주는 메소드를 작성하라. URL화: 문자열에 들어 있는 모든 공백을 '%20'으로 바꿔 주는 메소드를 작성하라. 최종적으로 모든 문자를 다 담을 수 있을 만큼 충분한 공간이 이미 확보되어 있으며 문자열의 최종 길이가 함께 주어진다고 가정해도 된다 (자바로 구현한다면 배열 안에서 작업할 수 있도록 문자 배열(character array)을 이용하길 바란다). URL 인코딩에 대해 궁금하다면 https://en.wikipedia.org/wiki/URL_encoding 을 참고하자. 한국어 위키에는 퍼센트 인코딩 이라고 되어있다. 이 문제를 해결하는 가장 쉬운 방법은 replace를 하는것 이겠지만, 그 것을 묻는 것은 아닐 것이다. 이 문제는 문자로 구성된 배열(character array)을 이용해 문제를 풀기를 원했고 최종적으로.. 2023. 8. 18.
문자열이 주어졌을 때, 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 작성하라 중복이 없는가: 문자열이 주어졌을 때, 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘을 작성하라 자료구조를 추가로 사용하지 않고 풀 수 있는 알고리즘 또한 고민하라. set을 이용해서 해결할 수 있다. def has_duplicate_chars(s): seen_chars = set() for char in s: if char in seen_chars: return True seen_chars.add(char) return False # 예시 input_str = "abcdefg" print(has_duplicate_chars(input_str)) # 출력: False input_str = "hello" print(has_duplicate_chars(input_str)) # 출력: True.. 2023. 8. 17.
7장 컨트롤러에서 조건부 로직 처리 (컨트롤러가 도메인의 세부사항을 모르도록 처리하자) 단위테스트 (블라디미르 코리코프) https://jonghoonpark.com/identifying-the-code-to-refactor https://jonghoonpark.com/refactoring-toward-valuable-unit-tests 에서 이어지는 글입니다. 비즈니스 로직과 오케스트레이션의 분리는 다음과 같이 비즈니스 연산이 세 단계로 있을 때 가장 효과적이다. 저장소에서 데이터 검색 비즈니스 로직 실행 데이터를 다시 저장소에 저장 그러나 이렇게 단계가 명확하지 않은 경우가 많다. 의사 결정 프로세스의 중간 결과를 기반으로 프로세서 외부 의존성에서 추가 데이터를 조회해야 할 수도 있다. 프로세스 외부 의존성 쓰기 작업도 종종 그 결과에 따라 달라진다. 이러한 상황에서는 다음과 같이 세 .. 2023. 8. 8.
6장 JDK 동시성(concurrency) 라이브러리 Well-Grounded Java Developer – 2nd edition 이번 장에서는 아래의 것들을 다룹니다. 아토믹(Atomic) 클래스 락(Lock) 클래스 Concurrent data structures BlockingQueues Futures and CompletableFuture Executors java.util.concurrent 를 어떻게 다루는지에 대해서 알아보고 이번 장을 통해 실제 코드로 적용할 준비를 갖추는 것 목표로 합니다. 6.1 최신 동시성 어플리케이션을 위한 블록 만들기 Java는 예전부터 동시성을 지원해왔습니다. 그러나 Java 5가 출시 되면서 java.util.concurrent 패키지를 통해 새로운 방식들을 지원해왔습니다. java.util.concurrent의 .. 2023. 8. 7.