챕터2. 클린 아키텍처 2.3 클린 아키텍처의 주요 4계층 안쪽 원에 존재하는 구성 요소는 바깥쪽에 독립적이다. 클린 아키텍처의 개념을 정립한 로버트 C. 마틴은 원문에서 각 계틍의 이름을 안쪽의 계층부터 각각 '엔티티', '유스 케이스', 인터페이스 어댑터', '프레임워크 및 드라이버'라고 했다. 이 책에서는 이름을 변경해서 부른다 - 엔티티 -> 도메인 - 유스 케이스 -> 애플리케이션 - 인터페이스 어댑터 -> 인터페이스 - 프레임워크 및 드라이버 -> 인프라스트럭처(인프라) 2.3.1 도메인(엔티티) 계층 도메인 계층은 소프트웨어 시스템 내에서 핵심 비즈니스 로직과 엔터프라이즈의 핵심 도메인 관련 기능을 관리하고 구현하는 부분이다. 도메인이 가지는 비즈니스 로직(도메인 규칙)은 시스템의 핵심 목적..
드디어 왔다!재미있게 공부해보자 1.2 포어트리를 이용한 가상환경과 의존성 관리 pip install poetry 프로젝트 폴더 생성 및 가상환경 설정 mkdir fastapi-cacd fastapi-capoetry init 가상 환경 구동poetry shell .toml 파일에 선언된 패키지 설치poetry install 경고가 발생하면- >루트 경로에 README.md 파일 추가-> pyporject.toml의 [tool.poetry] 항목에 package-mode = false 추가[tool.poetry]--생략--package-mode = false-> poetry.lock 파일 생성 됨 (poetry lock 명령어로도 생성 가능) poetry.lock은 패키지 간 의존성이 해결된 현재 ..
1. Broken Access Control 읽어볼 것 vulnerability was found in 2019, where an attacker could get any single frame from a Youtube video marked as private. Insecure Direct Object Reference 2.Cryptographic Failures A cryptographic failure refers to any vulnerability arising from the misuse (or lack of use) of cryptographic algorithms for protecting sensitive information. 폴더 나오면 주소창에 바로 날려볼 것 http://10.1..
Content Discovery 1) robots.txt 2)favicon this can give us a clue on what framework is in use. curl https://static-labs.tryhackme.cloud/sites/favicon/images/favicon.ico | md5sum https://wiki.owasp.org/index.php/OWASP_favicon_database 3) Sitemap.xml 4) HTTP Headers curl http://10.10.49.162 -v 5) Manual Discovery 6) OSINT - Google Hacking/Dorking Filter Example Description site site:tryhackme.com ..
Lab: Source code disclosure via backup files - check robots.txt Lab: Information disclosure on debug page feroxbuster 사용하기 ./feroxbuster -u https://0a10005c0349fbdb835078c100270029.web-security-academy.net/ -w common.txt Lab: Information disclosure in version control history wget -r https://0a5200650369d0c28064a827007e0063.web-security-academy.net/.git recursive download from web .git 찾아서 분석하기 L..
써보고 느낀점 : 국내 증권사 API 사용이 더 편하고 안정적이다. 1) yfinance (야후파이낸스 API 이용) pip install yfinance 한국 주식, ETF 도 다운 가능 import yfinance as yf # get ohlcv data for any ticker by period. data = yf.download("MSFT", period='1mo', interval="5m") # get ohlcv data for any ticker by start date and end date data = yf.download("MSFT", start="2017-01-01", end="2020-04-24") # get intraday data for any ticker by period. d..
인프런 리버스쿨 레벨1 수업내용 32비트 운영체제 -> 2^32 -> 최대 4기가 메모리의 주소까지 사용 가능 주소는 바이트 단위 4기가 : 4* 1기가 = 4* 2^10 * 2^10 * 2^10 바이트 -> 2^32바이트 프로그램 동작원리 컴퓨터 구조와 운영체제에 대한 공부가 필요함 리버서가 관심있는 것은 알고리즘 •빌드 소스 코드 파일을 실행 가능한 독립 소프트웨어 형태로 가공하는 과정 또는 그 결과물 전처리 → 컴파일 → 어셈블리 → 링크 → 로드 편집 을 하고 , 조립 을 한 다음 모든 조각을 연결 시킨다 전처리 : 조건부 컴파일 명령어 , 매크로 , include 파일 처리 컴파일 : 소스코드에서 어셈블리 소스 코드를 생성 어셈블리 : 어셈블리 소스 코드에서 어셈블리 목록을 추출 오프셋 포함 링..
개인적인 참고 용도입니다 - 1 의 보수 : 0 은 1 로 , 1 은 0 으로 변경 ( 00000100 → 11111011) - 2 의 보수 : 1 의 보수에서 1 을 더한 값 ( 11111011 → 11111100) 스택 - 함수 호출 시 생성되는 지역 변수와 매개 변수가 저장되는 영역 - 높은 주소에서 낮은 주소로 신장 - LIFO 구조 : 가장 처음에 들어간 데이터가 가장 나중에 나옴 힙 - 동적으로 메모리 할당 시 사용하는 영역 - 낮은 주소에서 높은 주소로 신장 데이터 타입, 데이터 크기 비트 (bit): 0 또는 1 바이트 (byte): 8 비트 워드 (word): 16 비트 더블 워드 (dword): 32 비트 ( ARM 아키텍처에서는 워드) 쿼드 워드 : 64 비트 ( ARM 아키텍처에서는..
개인적인 참고 용도입니다 구글과 나는 어떻게 연결되나 tracert 8.8.8.8 리눅스에서 traceroute (UDP 패킷 보냄) tracert는 ICMP Echo Request -> 11단계 OSI7 계층 모델 2계층 Data Link Layer 물리주소로 MAC 주소 사용 이더넷 프로토콜 이더넷 : 1980년에 처음 개발되었으머 1983년에 IEEE802.3으로 표준화 됨. 여러 컴퓨터가 동시에 데이터를 보낼 수 있음 Collision handling : Carrier Sense Multiple Access - Collision Detection (SCMA/CD) WLAN ARP - 같은 네트워크 대역에서 MAC주소를 알아오기 위해 사용함 ARP 테이블 확인하기 arp man arp arp -a ..
[스터디 노트] Udacity - Intermediate Python Nanodegree 2. Advanced Python Techniques Lesson 2. Representing Data Representing Data 어떻게 데이터를 표시할지에 대한 고민이 필요함. Variables and Namespaces 복사하면 객체를 복사하는 것이 아니라 Namespace 안에서 Reference를 추가하는 것. == : comparing value is : comparing identity # == : comparing value # is : comparing identity print(1 == 1.0) # True print(1 is 1.0) # False print(id(1)) print(id(1.0..
In [178]: # 시퀀스형 In [179]: # 컨테이너(Containd -> 서로 다른 자료형을 담을 수 있음: list, tuple, collections.deque) # a = [3, 3.0, 'a'] # 플랫(Flat : 한개의 자료형[str, bytes, bytearray, array.array, memoryview]) #가변형 : List, bytearray, array.array, memoryview, deque #불변(tuple, str, byte) In [180]: # 지능형 리스트 Comprehending List chars = '+_)(*&^%$#@!~)' chars[2] = 'h' #불변형이라 못바꿈 --------------------------------------------..
In [80]: # Special Method(Magic Method) # 파이썬의 핵심 # 시퀀스, 반복, 함수, 클래스 In [81]: print(int) In [82]: print(float) In [83]: # 모든 속성 및 메소드 출력 print(dir(int)) print(dir(float)) ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnew..