-
알고리즘 인사이드 with 파이썬BOOK 2024. 5. 25. 20:00
"한빛미디어 서평단 활동을 위해서 책을 제공 받아 작성된 서평입니다."유일한 단어 찾기문제정의2개의 문자열이 주어지고, 이 문자열에 출현하는 단어의 빈도를 구하고 정확히 1번만 출현하는 단어들만 모아 리스트로 반환하는 것이 이 문제의 목표입니다.sentence1 = "I have an expensive doll"sentence2 = "I have an adorable doll"["expensive", "adorable"]문제 해결파이썬에서 빈도를 구하려면 먼저 딕셔너리로 사용할 변수를 선언해야 합니다.이후 두 문장을 단어로 분리(tokenize)합니다. 첫번째 문장은 다음과 같이 분리됩니다.I, have, an, expensive, doll 이제 각 단어의 출현 빈도를 계산합니다. 각 단어가 정확히 1..
-
Spring DIBOOK 2024. 4. 27. 21:47
"한빛미디어 서평단 활동을 위해서 책을 제공 받아 작성된 서평입니다."DI의 개념DI는 'Dependency Injection'의 약자로, 프로그램을 설계할 때 사용되는 개념사용되는 객체를 사용하는 객체 외부에서 생성하여 전달받는 사고 방식1에서 사용되는 객체를 준비2에서 사용하는 객체에 생성자의 인수 등을 사용해 전달사용하는 쪽은 3에서 전달받은 객체의 메서드를 호출DI의 D는 의존(dependency)을 의미하고, I는 주입(injection)을 의미DI와 인터페이스일반적으로 DI를 설명할 때는 의존 객체가 인터페이스를 구현한다고 가정하지만 의존 객체가 반드시 인터페이스를 구현할 필요는 없다.예를 들어 아래와 같이 인터페이스를 사용하지 않는 클래스도 DI를 적용할 수 있다.TrainingReposi..
-
게임 AI를 위한 탐색 알고리즘 입문BOOK 2024. 3. 23. 22:29
"한빛미디어 서평단 활동을 위해서 책을 제공받아 작성된 서평입니다." 게임에서 말하는 AI와 탐색 대진 게임 AI를 구성하는 기술에는 탐색, 머신러닝, 규칙 기반 3종류의 기술 요소를 사용 이 책은 이러한 세 종류 기술 요소 중에서 탐색에 중점을 두고 설명 숫자 모으기 미로게임 숫자 모으기 게임규칙 설명 플레이어 목적 게임이 종료할 때까지 높은 기록 점수를 얻습니다. 플레어어 수 1인 플레이어의 행동 타이밍 1턴에 1회 플레이어가 가능한 행동 각 턴마다 캐릭터(@)를 상하좌우 네 방향 중 어느 하나로 1칸 이동시킵니다. 가만히 있거나 게임판 밖으로 이동시키는 것은 불가능합니다. 게임 종료 조건 정해진 턴 수를 넘깁니다. 기타 캐릭터는 무작위로 초기 배치됩니다. 캐릭터가 이동한 곳에 점수가 있으면 해당 점..
-
HTTPS 통신의 암호화, RSA 그리고 양자 컴퓨터BOOK 2024. 2. 16. 22:46
"한빛미디어 서평단 활동을 위해서 책을 제공 받아 작성된 서평입니다." HTTPS 인터넷은 통신과정에서 누군가 데이터를 훔쳐볼 수 있기 때문에 서버, 클라이언트 간 주고받은 데이터를 전부 암호화하는 방법을 사용 이를 위해 HTTPS를 사용. HTTPS = HTTP over SSL (보안이 강화된 HTTP 프로토콜) HTTP와 HTTPS의 차이는 전송계층과 응용계층 사이 보안계층이 추가 HTTPS에서는 TLS(transport layer security), SSL(Secure sockets layer)을 사용해 안전한 통신 채널을 제공 OSI 7 layer OSI 7 계층은 컴퓨터들이 서로 통신할 수 있도록 네트워크 통신 기능을 7개의 계층으로 나눈 '개념적' 프레임워크 많은 계층으로 구성되어 상대적으로 ..
-
미술과 객체지향 프로그래밍의 추상DEV 2024. 1. 27. 11:39
최초로 추상화를 그린 화가는 러시아 태생의 칸딘스키로 알려져 있다. 컴퓨터 사이언스에선 추상이란 개념을 누가 먼저 도입했는지는 알 수 없지만, 미술과 컴퓨터 사이언스에서 사용하는 추상이라는 개념은 모두 같은 단어를 사용한다. 영어는 abstract, 한자는 抽象(뺄 추, 코끼리 상) 미술과 프로그래밍에서 사용하는 추상이라는 개념은 서로 관계가 있는걸까? 미술 추상미술은 두 가지로 정의할 수 있다. 첫 번째는 미술가가 형상을 생략, 단순화, 변형시키거나 주관적인 색채를 사용한 미술을 의미한다. 두 번째는 형태로 나타낼 수 없는 것을 표현하거나, 감정, 느낌, 생각 등 눈에 보이지 않는 개념을 표현한 미술이다. 프로그래밍 프로그래밍 추상 또한 '사상'과 '일반화'라는 2가지 관점에서 정리된다. 사상은 복잡한..
-
추상 클래스, 인터페이스, 상속, 합성, 프록시/데코레이터 패턴 그리고 Spring AOPDEV 2024. 1. 20. 12:08
추상클래스와 인터페이스는 어떻게 다른가? 왜 상속보다는 합성(조합)을 사용하는가? 데코레이터 패턴, 프록시 패턴은 이들과 어떤 관계가 있는가? 추상 클래스 public abstract class Logger { private String name; private boolean enabled; private Level minPermittedLevel; //생성자 public void log(Level level, String msg) { ... doLog(level, message); } protected abstract void doLog(Level level, String msg); } public class FileLogger extends Logger { private Writer fileWrite..