MINIWIKI
CareerSideProjectBook&Study
  • ⚡README
  • 😃ME
    • Review
      • 2025 OKR & 회고 - 회사 없이도 먹고살 수 있는 상태가 된다
        • 2025년 19주차
        • 2025년 18주차
        • 2025년 17주차
        • 소설쓰기의 쓸모
        • 2025년 15주차
        • 2025년 14주차
        • 요즘 회사생활
        • 첫 페이지 작성!
        • 큰 코 다쳤다
        • 오랜만에 좋았던 하루
        • 악순환과 반복실패
        • 2025년 12주차
        • 2025년 11주차
        • 2025년 3월 6일
        • 2025년 3월 4일
        • 2025년 3월 1일
        • 2025년 2월 회고
        • 2025년 1-2월 책, 영화, 음악
        • 2025년 1-2월 회고 (PM)
        • 2025년 1-2월 회고 (콘제품)
          • (Merged) 2025 비즈니스
        • 2025년 1-2월 회고 (삶/사람)
        • 2025년 1-2월 회고 (기본)
        • (25.02) 고객 피드백 받기
        • 다시 전략 수정
        • 머리 속 복잡한 것들 끄적끄적
        • 변하지 않는 핵심 철학
        • 개별화 능력을 이용하는 방법
        • 파고들기
        • 예술가와 사업가
        • 강점
        • PM으로서의 전문성
        • 부동시
        • 이게 다 무슨 소용인가
        • 내가 가장 잘 전할 수 있는 메시지
        • 연말인사 타이밍
        • Attitude는 옷부터
        • 다시 시작
      • 2024 회고
        • 2024년 12월 4주차 (52/52)
        • 원한다고 생각했던 것들
        • 2024년 12월 3주차 (51/52)
        • 회사 vs. 퇴사
        • 2024년 12월 2주차 (50/52)
        • 2024년 11월 4주차 (47/52)
        • 2024년 11월 3주차 (46/52)
        • 2024년 11월 1주차 (44/52)
        • 혓바늘
        • 2024년 10월 3주차 (42/52)
        • 그냥, 요즘하고 있는 생각들
        • 2024년 10월 1주차 (40/52)
        • 2024년 9월 4주차 (39/52)
        • 2024년 9월 3주차 (38/52)
        • 2024년 9월 2주차 (37/52)
        • 2024년 9월 1주차 (36/52)
        • 2024년 8월 4주차 (35/52)
        • 잃어버린 보물창고
        • 분기별 프로젝트
        • 강점검사
        • 글쓰기
        • 이상적인 하루
        • 나와 아프리카
        • 한 때 나에게 힘이되었던 문장들
      • 2023 회고
        • 2023년 12월 5주차
        • 2023년 12월 4주차
        • 2023년 12월 3주차
        • 2023년 12월 2주차
        • 2023년 12월 3일
        • 2023년 12월 1주차
        • 2023년 11월 29일
        • 2023년 11월 28일
        • 2023년 11월 27일
        • 2023년 11월 18일
        • 2023년 11월 15일
        • 2023년 11월 12일
        • 2023년 11월 11일
        • 2023년 11월 1주차
        • 2023년 10월 3주차
        • 2023년 9월 4주차
        • 2023년 9월 3주차
        • 2023년 9월 2주차
        • 2023년 9월 1주차
        • 2023년 8월 4주차
        • 2023년 8월 2주차
        • 2023년 8월 1주차
        • 2023년 7월 4주차
        • 2023년 7월 3주차
        • 2023년 7월 2주차
        • 2023년 상반기 회고
        • 나태하고 욕심많은 인간은 어떻게 살아야 하나
        • 책 <어떻게 살아야 하는가>
        • 책 <당신은 결국 무엇이든 해내는 사람>
        • 복잡계를 살아가는 단순한 사람
        • 책 <모든것이 되는법>
        • 글로 신뢰를 얻었던 경험들
        • 기획은 나를 찾아가는 과정
        • 나는 왜 살아가는가
        • 장항준 감독으로부터 배우는 "삶을 대하는 자세"
        • 개발자가 말하는 감정에도 분석이 필요한 이유
      • 2022년 회고
        • problem map 작성하기
        • 삶에서 내가 해결하고 싶은 문제 (2)
        • 삶에서 내가 해결하고 싶은 문제 (1)
        • <삶의 문제> 지도 다시 꺼내보기
        • 지도 위의 29살
        • 매번 시간계획을 망치는 MBTI 'P형 인간'을 위한 5단계 인생관리법
        • 당신은 왜 프로그래밍을 공부하는가?
        • 아무 것도 아닌 내가 글을 쓰는 이유
        • 책 <여행의 이유>
        • 책 <붕대감기>
      • 2021년 회고
    • Career
      • [미리캔버스] AI 제품 PM
        • 선택과 집중
        • 어쩌면 내가 틀릴 수도 있다는 생각
        • 뾰족한 사람들과의 협업
        • AI기능 PPT로 온보딩
        • AI 제품에서 가장 중요한 것
      • [미리캔버스] 앱 PM
      • [미리캔버스] 소상공인 제품 PM
      • [미리캔버스] 2.0 PM
      • [홀로스탠딩] 백엔드 개발
      • [청년5.5] 안드로이드 개발
      • [가축대출사업] NGO Project PM
    • Insight
    • Interview
    • Public Writing
  • SIDE PROJECT
    • [Youtube] 메이킹필름
      • [Product] 청춘집 프로젝트
        • (v24.11) 청춘집 JTBD
          • (구) 청춘집 실행계획
          • (구) 플레이리스트 기획
            • 데이식스 전곡 타임라인
            • 챕터 구성
        • (v25.01) 청춘집 JTBD
          • 아이돌 굿즈 시장 조사 (공식)
          • 아이돌 굿즈 시장 조사 (비공식)
        • 제작 준비
          • 레퍼런스 - 오프라인 시집
          • a5 책 만들기
    • [Youtube] 마포구타자기
      • [mptw] JTBD
        • IKIGAI
      • [mptw] 채널 설정
        • 채널 이름 후보군
      • 시리즈 [읽는음악]
        • [읽는음악] 백로그
          • 노래 가사 콘텐츠 레퍼런스
        • ep1. 파노라마 - 이찬혁
          • 이찬혁 <ERROR>
        • ep2. 마지막 인사 (feat. 청하) - 이찬혁
        • ep3. 나의 바다에게 - 도영
        • ep4. Dattom - 백예린
        • ep5. REBEL HEART - IVE
        • ep6. Either way - IVE
        • ep7. 너와의 모든 지금 - 재쓰비(JAESSBEE)
        • ep8. 예뻤어 - DAY6
        • 6주차. 데이식스 시리즈
    • [IT] 공적인사적모임 플랫폼
      • 1. 우리 조직의 얼굴을 만들자
      • 2. 내 생에 첫 기획서 만들기 (feat. QA Driven Development)
    • [Meet] 공적인사적모임
    • [Youtube] 이상한나라의 개발자할무니
    • [Study] Disquiet PM 스터디 쿨피스
    • [IT] 서울 빵 맛집 잘알 테스트
    • [Meet] 얼리버드 모닝클럽
      • 홍보를 곁들인 2주일 운영후기
  • 잡학사전
    • 와인 원데이 클래스
    • 소설쓰기
      • <책> 소설쓰기의 모든 것 1 - 플롯과 구조
      • 유튜브 - 소설 쓰는 법
      • 강의들
      • 작가가 되려면 어떻게 해야해
    • AI
      • 생성형 AI
    • ComfyUI
      • Stable Diffusion
      • ComfyUI 준비, 설치, 설정
      • Module 구조에 대해 이해하기
      • ComfyUI
      • Core Node
    • 작사
      • 작사가 되는 법
    • 유튜브
      • 유튜버 스토리님의 부캐 성장기
      • 주언규 유튜브 초보편 (클래스101)
      • 주언규 유튜브 왕초보 편
    • 경제
      • 연금저축펀드
    • ChatGPT
    • 크롤링
      • Automatio
      • Octoparse
    • 노코드
      • 북마크 & 노코드 서비스 목록
  • PRODUCT&BUSINESS
    • Service Planning/Analysis
      • 브런치시리즈 <개발보단 고객개발>
      • baemin mart
        • 1. 시작
        • 2. 우아한형제들 & 배민상회
        • 3-1. [인터뷰] 포항에서 치킨집을 운영하시는 최사장님
        • 3-2. [인터뷰] 부산에서 족발 프렌차이즈를 운영하시는 이사장님
        • 4. <아프니까 사장이다> 커뮤니티 데이터 분석
        • 5. 문제정의 & 개선 가설
        • 6. 결론 - 역기획서
      • careerly
      • meetme
      • 배달의 민족 역기획 사례
      • 당근마켓 역기획 사례
      • 도그냥 님이 말하는 진짜 역기획
      • 도그냥의 역기획 스터디법
      • 책 <현업 기획자 도그냥의 서비스 기획 스쿨>
      • 기획서 작성하기
    • Business/Growth
      • Unsexy Business 뉴스레터에서 얻는 인사이트
      • 책 <원씽>
      • 책 <아프리카 스타트업>
      • 책 <유난한 도전>
      • 책 <함께자라기>
      • 책 <나는 돈 없어도 사업을 한다>
      • 책 <나는 장사의 신 은현장이다>
      • 책 <왜 사업하는가>
      • 책 <왜 일하는가>
      • 이제는 피칭도 유튜브로
      • 세컨드 브레인이 필요한 이유
      • 책 <타이탄의 도구들>
      • 책 <역행자>
        • <역행자> 역행자의 7단계 모델 복습
        • <역행자> 운명을 거스르는 역행자의 7단계 모델
      • 책 <월급쟁이로 시작한 38살 그녀는 어떻게 30억을 벌어 파이어족이 되었을까?>
      • 책 <파리에서 도시락을 파는 여자>
      • 책 <존리의 금융문맹탈출>
      • 책 <돈의 감각을 길러주는 경제 지식 첫걸음>
        • 금리
        • 환율
        • 주식
        • 채권
        • 부동산
        • 연금
        • 경제정책
        • 규제
        • 경제위기
    • Product-Market Fit
      • 브런치 북 <개발보단 고객 개발>
      • 책 <아이디어 불패의 법칙>
      • 고이장례연구소
      • 글쓰기로 PMF 검증하기
      • 연대 송도 캠퍼스의 40%가 사용한 서비스
      • 어웨이크코퍼레이션의 김민준 님
      • 드로우 마이 브랜드
      • 노코드로 PMF 찾는 방법
    • UI/UX
      • UX Writing Workshop
        • 4. 고객과의 관계형성 - 차별점 강화
        • 3. 비즈니스 임팩트를 만드는 글쓰기
        • 2. 후킹한 문장으로 고객 행동 이끌기
        • 1. 쉽고 정확한 문장으로 문제해결
        • What is UX Writing?
        • Reference
      • UX/UI 관련 유용한 사이트 모음
    • PM/PO
      • 책 <프로덕트 매니지먼트>
      • 책 <인스파이어드>
      • PM Wiki
      • 당신과 팀을 성장시킬 PM 직무가이드
      • PO 미신, 파랑새를 찾아서 - CPO 김용훈
      • 개발자가 생각하는 좋은 PM 나쁜 PM
      • 프로덕트 매니저는 뭐하는 사람인가
      • 토스 리더가 말하는 PO가 꼭 알아야할 개념 (2)
      • 토스 리더가 말하는 PO가 꼭 알아야할 개념 (1)
      • 책 <조직을 성공으로 이끄는 프로덕트 오너>
        • <프로덕트 오너> PO의 시간관리법
        • <프로덕트 오너> PO가 데이터 기반으로 일할 수 밖에 없는 이유
  • DATA
    • Database
      • 이 위키를 만드는데 참고한 자료들
      • 데이터 기반 의사결정
      • 데이터베이스의 종류
      • 트랜잭션과 무결성
      • 트랜잭션, 커밋, 롤백, 트랜잭션 전파
      • ERD, entity relationship diagram
      • 기본 3 - 관계, 키
      • 기본 2 - 필드, 레코드, 타입
      • 기본 1 - 엔티티, 릴레이션, 속성, 도메인
    • SQL
      • Sub Query
      • JOIN
      • 데이터 정렬셋과 유니코드
      • 자료형
      • DDL, DML
      • SELECT
      • SQL
    • MySQL
      • MSQL to MySQL Data Migration
      • MySQL Server 다운로드, 로그인
      • helpful commands
      • 문자열 자르기 SUBSTR(column, startIdx, length)
      • 특정 값을 ORDER BY 특정 값 우선 정렬 하기 (ORDER BY FIELD)
      • 이것이 MySQL이다
    • H2
      • ‼️h2 in-memory-db Table not found (this database is empty) 해결방법
  • Dev-General
    • Webmark
    • Open Source
      • 나의 첫 opensource contribution 경험기
    • Dev-Insight
      • Event
        • YOUTHCON 2022
        • INFCON 2022
      • 책 <누워서 읽는 알고리즘>
      • 책 <나는 LINE 개발자입니다>
      • 서비스에 대해 개발자가 가져야할 생각들
      • AI 시대에서 결국 살아남는 것
      • AI 시대에 개발자가 살아남는 방법
      • 주니어를 넘어서, 성장하는 개발자의 길 (인프런)
      • 아마추어와 프로의 차이
      • 개발자의 개발공부에 대하여
      • 서비스에 대해 개발자가 가져야할 생각들
      • 좋은 개발자와 인맥을 만든 노하우
      • 개발자 취업기/이직기 모음
        • 라인게임즈 백엔드 개발자 경선님
        • OKKY 미니세미나 <비전공 학원출신 SI개발자, 유명스타트업 들어간.ssul> 참석 후기
        • 비전공자에서 2억받는 아마존 엔지니어가 되기까지
        • IT 대기업 100% 합격하는 방법
  • 🏗️computer science
    • Algorithm & Data Structure
      • About this page
      • Test Review
        • Page 1
      • Big-O
        • 빅오표기법의 문제풀이
        • 피보나치 수열의 시간복잡도
      • Bit Operation
        • bit masking
      • Math
        • 합공식 / 누적합
        • 피보나치 수
        • 약수찾기
        • 소수찾기
          • 백준 1978 소수찾기
          • 백준4948 베르트랑 공준
          • 백준 8393 합
          • 백준 1929 소수구하기
        • 최대공약수 / 최소공배수
          • 백준 2824 최대공약수, BigInteger
          • 백준 2609 최대공약수, 최소공배수
        • 순열과 조합
          • 백준 15649 N과 M
        • 그 외 개념 정리
      • Recursion
        • N Queens problem
        • counting cells in a blob
        • recursion 응용 - 미로찾기
        • 순환 알고리즘의 설계
        • 순환적으로 사고하기
        • 백준 17478 재귀함수가 뭔가요
        • 백준 10870 피보나치수 5
      • Sort
        • java 에서의 정렬
        • radix sort
        • sorting in linear time
        • comparison sort 에서 최상의 시간복잡도
        • priority queue
        • heap sort
        • quick sort
        • merge sort
      • Array and List
        • 표준 라이브러리
      • Linked list
      • String
      • Stack
        • 백준 1874 스택수열
        • 백준 10828 스택 구현하기
      • Queue
        • 백준 10845 큐 구현하기
      • Heap
        • 백준 11298 절대값힙
        • 백준11279 최대힙
        • 백준1927 최소힙
      • Deque
      • Tree and Binary tree
        • Tries
        • Red-Black Tree
        • Binary Search Tree
      • Search
        • 완전 탐색
        • 이분탐색
      • Graph
        • 최단경로
        • MST 2 - prim 의 알고리즘
        • MST 1 - Kruskal 의 알고리즘
        • MST, minumum spanning tree
        • DAG, Directed Acyclic Graph
        • DFS, Depth First Search
        • BFS, Breadth First Search
      • Dynamic Programming
        • Knapsack problem
        • LCS, Longest Common Subsequence
        • matrix chain
        • 행렬 경로 문제
        • 백준 1003 피보나치 함수
        • 백준 9461 파도반 수열
        • 백준9251 LCS
      • Greedy
      • Implementation
      • LIS, Longest Increasing Subsequence
      • Two Pointer
      • Line Swipping
      • Fenwick tree
      • Backtracking
    • Computer Structure
      • 이 위키를 만드는데 참고한 자료들
      • 그래서 컴퓨터는 어떻게 동작하나요?
      • 컴퓨터의 구성
      • 컴퓨터의 역사
      • 컴퓨터 구성요소의 기능 및 이해
      • 중앙처리장치 - 마이크로 명령 - 입출력과 인터럽트
      • 중앙처리장치 - 기본 컴퓨터 프로그래밍
      • 중앙처리장치 - 프로그래밍 언어와 실행
      • 파이프라인과 벡터처리 - 데이터의 종속성 - 병렬처리와 파이프라인
      • 파이프라인과 벡터처리 - 파이프라인 구조 - 데이터/구조
      • 파이프라인과 백터처리 - 산술&명령어 파이프라인
      • 파이프라인과 벡터처리 - 파이프라인 CPU의 성능분석
      • 메모리 구조 - 메모리 시스템의 이해
      • 메모리 구조 - 효율적인 메모리 관리 정책
      • 메모리 구조 - 컴퓨터 성능 개선을 위한 메모리 관리
      • 입출력구조 - 시스템 BUS 구성 및 제어
      • 입출력 구조 - 입출력(I/O) 연결과 주소 지정
      • 입출력 구조 - 입출력 수행과 인터럽트
      • 병렬컴퓨터 구조와 성능분석 - 멀티 프로세서
      • 병렬 컴퓨터 구조와 성능 분석 - 시스템 성능 분석과 개선
    • This Is Coding Test 2021
      • 1. 출제 경향 & 파이썬 문법 부수기
      • 2. 그리디 알고리즘 & 구현
      • 3. BFS & DFS
      • 4. 정렬 알고리즘
      • 5. 이진탐색
      • 6. 다이나믹 프로그래밍
      • 7. 최단경로 알고리즘
      • 8. 기타 그래프 이론
      • 9. 코딩테스트에서 자주 출제되는 기타 알고리즘
      • 10. 개발형 코딩테스트
    • Operating System
      • 이 위키를 만드는데 참고한 자료들
      • 운영체제란, Introduction to Operating Systems
      • 컴퓨터 시스템의 구조, Structure of Computer System
      • 프로그램의 실행, Program Execution
      • 프로세스, Process
      • 쓰레드, Thread
      • 프로세스의 생성과 종료, Start and End of Process
      • 프로세스 시스템 콜과 프로세스간의 협력, System call and Interprocess Communication
      • CPU Scheduling
      • CPU Scheduling Algorithm
      • Process Synchronization Problem
      • Initial Attempts to Solve Process Synchronization Problem
      • semaphore 와 monitor 로 synchronization 해결하기
      • 데드락, Deadlock
      • 메모리 관리, Memory Management
      • Memory Allocation
      • Virtual Memory
      • Virtual Memory 2
      • File System
      • File Systems Implementation
      • Disk Management & Scheduling
    • Network
      • 이 위키를 만드는데 참고한 자료들
      • 대규모 트래픽으로 인한 서버 과부하 해결방법
      • 유선 LAN과 무선 LAN
      • 네트워크를 이루는 장치 (L1, L2 .. L7)
      • REST API
      • HTTP 매서드
      • HTTP 상태코드
      • 직렬화와 역직렬화
      • 로그인 구현방식 2. 토큰 기반 인증방식
      • 로그인 구현방식 1. 세션 기반 인증방식
      • 웹 브라우저의 캐시 - 공통점과 차이점
      • 웹 브라우저의 캐시 - 쿠키
      • HTTP header
      • 웹 브라우저의 캐시 - 세션 스토리지
      • 웹 브라우저의 캐시 - 로컬스토리지
      • browser rendering
      • HTTPS 와 TLS - TLS 핸드쉐이크
      • HTTPS 와 TLS - 암호화
      • HTTP History
      • www.naver.com 을 주소창에 입력하고 화면에 나타나기까지의 과정
      • IP 주소 - 공인 IP와 사설 IP
      • IP 주소 - Classless,Subnet Mask, Subnetting
      • IP 주소 - Classful IP Addressing
      • IP 주소 - IPv4, IPv6
      • IP 주소 - 이진수 이해하기
      • IP 주소, MAC 주소, ARP, RARP
      • 라우팅
      • TCP 4way handshake and TIME_WAIT
      • TCP 3way handshake
      • TCP/IP - internet layer
      • TCP/IP - Transport Layer
      • TCP/IP - Application Layer
      • TCP/IP - MTU, MSS, PMTUD
      • TCP/IP 4계층, OSI 7 layer
      • 네트워크의 분류 - LAN, MAN, WAN
      • 네트워크 토폴로지와 병목현상
      • 네트워크의 기초 3
      • 네트워크의 기초 2
      • 네트워크의 기초
    • Linux
      • reference
      • sudo apt-get install / uninstall
      • vim
      • linux basic command
    • Design Pattern
      • 이 위키를 만드는데 참고한 자료들
      • static 을 자주 사용하게 되었을 때의 단점
      • 자바스크립트의 class와 static
      • 프로그래밍 컨텍스트
      • 의존성 주입 vs. 전략패턴
      • flux pattern
      • Spring MVC 패턴 적용 사례
      • MVC, MVP, MVVM pattern
      • 프록시 패턴
      • 옵저버 패턴
      • 전략패턴
      • 의존성 주입과 의존 관계 역전 원칙
      • 이터레이션 패턴
      • 추상 팩토리 매소드 패턴
      • 팩토리 메소드 패턴
      • 싱글톤 패턴
      • 디자인 패턴, 라이브러리와 프레임워크의 차이
    • Programming Basic (Go)
      • 이 위키를 만드는데 참고한 자료들
      • 트랜지스터, Trangister
      • 논리소자, Logic Element
      • 튜링과 폰 노이만, Turing and Von Neumann
      • 컴퓨터의 원리, Computer Principle
      • 프로그래밍 언어, Programming Language
      • 컴파일러와 동적언어, Compiler and dynamic language
      • golang
      • hello, world
      • variable
      • variable 2
    • Base Knowledge
      • 이 위키를 만드는데 참고한 자료들
      • 신기술 도입시 고민해야할 점(feat. react.js vs. vue.js)
      • 정적 타입 시스템의 필요성
      • 도커, 컨테이너
      • 클라우드, Saas, IaaS, PaaS
      • SSO
      • RBAC
      • OAuth2.0
      • REST API 사용을 위한 인증 방법 4가지
      • API
      • Data Format - XML
      • Data Format - JSON
  • ☕Java/Spring
    • Java
      • Java Code Convention
      • Java 버전별 특징 (v1-v19)
      • java.lang.Math
      • List 4가지의 초기화 방법
      • HashMap 4가지의 정렬 방법
      • 어노테이션 프로세서 정리하기
      • Annotation Processor 로 없는 소스코드 생성하기
      • lombok 은 어떻게 동작하는 것일까?
      • 다이내믹 프록시 정리하기
      • 클래스의 프록시
      • 다이내믹 프록시
      • 프록시 패턴은 무엇인가
      • Spring Data JPA 는 어떻게 동작할까?
      • reflection api 정리
      • reflection api 이용하여 spring ioc container 만들기
      • reflection api
      • spring dependency injection 은 어떻게 동작할까
      • 바이트 코드 조작하기
      • java bytecode 를 조작해 테스트 코드 커버리지 확인하기 (feat.jacoco)
      • Class Loader
      • JVM 의 구조
      • java, jvm, jdk and jre
      • synchronized
      • java string.split(".") 오류
    • Java 8
      • 이 위키를 만드는데 참고한 자료들
      • Metaspace
      • Parallel 정렬
      • Annotation
      • CompletableFuture
      • Date and Time
      • Optional
      • Stream
      • interface의 default 메소드와 static 메소드
      • 인터페이스의 변화
      • 함수형 인터페이스
      • java 8 소개
    • Spring Framework
      • Spring 3.0 준비하기
      • 특정 매소드만 transaction 처리하기
      • 스프링 프로젝트 시작하기
      • 스프링이란 무엇인가
      • 스프링 핵심 기술의 응용
      • AOP 2
      • AOP 1
      • 서비스 추상화 2
      • 서비스 추상화 1
      • 예외
      • 템플릿
      • 테스트
      • 오브젝트와 의존관계
      • 스프링이란
    • Spring Boot
      • [Gradle]UncheckedIOException
      • java19 + spring 3.0.5 + gradle 7.4.1 에서 프로젝트 gradle 설정하기
      • [리뷰] Gradle 멀티 프로젝트 관리
      • [리뷰] 멀티모듈 설계 이야기 with Spring, Gradle
    • JPA/QueryDSL
      • querydsl 을 쓰는 이유
      • JPA querydsl에서 json array 로 된 컬럼에 조건 적용하기
      • querydsl 에서 mysql order by field() 사용하기
  • 🏰Infrastructure
    • InfraWorkshop
      • 이 위키를 만드는데 참고한 자료들
      • aws로 안정적인 인프라 만들기 2
      • aws로 안정적인 인프라 만들기 1
      • 어플리케이션 진단하기
      • 서버 진단하기
      • 부하 테스트
      • 웹 성능 개선하기
      • 웹 성능 진단하기
      • <aws로 그럴듯한 인프라 만들기> 회고와 피드백
      • aws로 그럴듯한 인프라 만들기 3 - 배포스크립트
      • aws로 그럴듯한 인프라 만들기 2 - 배포하기
      • aws로 그럴듯한 인프라 만들기 1 - 네트워크 망 구성
      • docker container
      • connection check
      • network segmentation
      • cloud 서비스를 사용한다는 것
    • AWS
      • AWS IAM
      • AWS CodePipeline 으로 배포 자동화하기 (1)
      • AWS CodePipeline 으로 배포 자동화하기 (2)
  • 🪄Test
    • TDD
      • 이 위키를 만드는데 참고한 자료들
      • [2주차] 로또 과제 강의를 듣고나서
      • [1주차] 자동차 경주 과제 강의를 듣고나서
      • TDD, 리팩토링이란?
      • 가장 쉽게 TDD 시작하는 방법
      • 의식적인 연습과 학습 테스트
      • TDD 에 집착해야하는 이유
      • 공부하는 자세
    • AssertJ
      • 이 위키를 만드는데 참고한 자료들
    • JUnit
      • 이 위키를 만드는데 참고한 자료들
      • Junit 기본 개념
  • 😎OTHERS
    • Helpful Command
      • Mac 에서 특정 포트 검색, 종료
      • crontab
    • Llibrary
    • IntelliJ
      • 내가 좋아하는 커스텀 세팅
    • GIT
      • Github ID/Token 한번 입력 후 저장하기
      • Github Actions
      • github organization private repository push 안될 때 (not found issue)
      • commands
      • git commit convention
    • Logging
      • logback + webfilter 로 로그설정
      • ‼️log4j 보안 이슈
    • Postman
      • postman 의 header에서 언더바(_) 변수 인식 안되는 현상
Powered by GitBook
On this page
  • 0. 기본명령어
  • 1. 파일시스템
  • 2. head
  • 3. tail
  • 4. wc
  • 5. nl
  • 6. sort
  • 7. uniq
  • 8. cut
  • 9. tr
  • 10. sed
  • 11. awk
  • 12. find
  • 13. grep
  • 14. locate
  • 15. which
  • 16. ps
  • 17. top
  • 18. lsof
  • 19. netstat
  • 20. sysctl
  • 21. df
  • 22. du
  • 23. dmidecode
  • 24. free
  • 25. lscpu
  • 참고) 요즘 컴퓨터의 CPU

Was this helpful?

  1. computer science
  2. Linux

linux basic command

0. 기본명령어

  • ls : list

  • / : to root directory

  • ~ : to home directory

  • cd : change directory

  • pwd : print working directory

  • man [command] : command 쓰는 법에 대한 manual 표시

1. 파일시스템

  • touch [filename] : 신규 파일 생성

  • cat [filename] : concatenate. 연결시킨다는 의미를 가지고 있음. 이름과 일치하는 파일 내용을 읽어 화면에 출력

  • mv [기존경로] [새로운 경로] : 기존 경로에서 새로운 경로로 파일이나 디렉토리를 이동시킨다. 경로에는 옮길 파일의 이름이나 디렉토리까지 포함시켜야한다.

  • rm [filename] : 삭제

    • rm -r : recursive 하게 삭제. 디렉토리를 삭제할 때 사용한다.

    • rm -rf : recursive + forcibly 하게 삭제. 디렉토리 내부의 모든 파일을 강제로 삭제한다.

  • mkdir : 디렉토리 생성

  • file !s : 파일의 속성

  • cp -R <source_folder> <destination_folder> : 디렉토리 복사

  • cp <source_file> <destination_file> : 파일 복사

2. head

  • 문서 내용의 앞부분만 출력

  • head /etc/passwd : 앞의 10줄만 출력

  • head -n 1 /etc/passwd : 앞의 1줄만 출력

  • head -c 10 /etc/passwd : 앞의 10바이트만 출력 / 앞에서 10글자만 출력됨

  • cat /etc/passwd | head -n 15 : cat으로 출력한 결과에서 상위 15줄만 출력

  • cat /etc/passwd | head -n -5 : cat으로 출력한 결과에서 하위 5줄은 제외하고 출력

3. tail

  • tail /etc/passwd -n 1 : 아래에서 1줄만 출력

  • tail /etc/passwd -n +5 : 위에서 5번째줄부터 마지막까지 출력

  • cat /etc/passwd | tail -n 15 : cat 출력 결과로부터 아래에서부터 15줄 출력

  • cat /etc/passwd | tail -n +5 : cat 출력 결과로부터 위에서 5줄부터 마지막까지 출력

  • tail -f : 파일에 추가되는 내용을 대기한다.

    • 추가되는 내용은 append하여 출력한다.

    • 로그를 실시간으로 모니터링할 때 자주 쓰인다.

    • 파일이 중간에 사라지면, 출력되지 않고 멈춘다.

  • tail -F : 파일이 중간에 사라지더라도, 다시 생성하여 내용을 append 하며 출력한다.

4. wc

  • 파일의 line/word/byte 를 count 값을 출력한다.

  • wc /etc/passwd

    • 19 24 922 /etc/passwd

    • 19줄, 24단어, 922 바이트의 파일임을 나타낸다.

  • wc -l /etc/passwd

    • 라인수만 출력된다.

    • 19 /etc/passwd

  • cat /etc/passwd | wc -l : cat 해서 출력된 결과의 라인수만 출력한다.

    • 19

  • wc -l /etc/passwd | cut -d ' ' -f 1

    • 공백문자열을 delimiter 로 하여 cut 한 결과에서 1번째 문자를 출력 : 19

    • wc 해서 나온 결과 : 19 /etc/passwd

  • wc -l /etc/passwd | awk '{ print $1 }'

    • wc 해서 나온 결과 : 19 /etc/passwd

    • awk 를 이용하여 첫번째 변수만 출력 : 19

  • wc *.c : 확장자가 .c인 파일들의 합계 출력

5. nl

  • 파일 내용을 라인 넘버와 함께 출력한다.

  • nl /etc/passwd : 파일 내용을 라인넘버와 함께 출력한다.

  • nl -ba /etc/passwd : 모든 라인에 대해서 라인 넘버링을 하여 출력한다.

  • nl -v 5 /etc/passwd : 시작할 라인번호를 -v 뒤의 숫자로 지정한다. 5부터 넘버링 시작

  • nl -ba -s "==>" /etc/passwd : -ba

    • 모든 라인에 대해서 출력하고,

    • -s "===>" : 라인넘버 뒤에 붙여줄 seperator 를 지정한다.

  • nl -ba -s "==>" /etc/passwd | tail

    • 위의 결과에서 밑에서 10번째 줄만 출력

6. sort

  • 말그대로 정렬하여 출력한다.

  • sort /etc/passwd : 알파벳 순서로 정렬

  • sort /etc/passwd -t: -k 3 : ":" 를 구분자로, 3번째 키값에 대해서 오름차순으로 출력

  • sort /etc/passwd -n -t: -k 3 : ":" 를 구분자로, 3번째 키값을 숫자로 간주하여 오름차순으로 출력

  • sort /etc/passwd -t: -k 3,3 : ":" 를 구분자로 하되, 3번째부터 3번째 키를 기준으로 오름차순 출력

  • sort /etc/passwd -t: -k 4,4 -k 3,3 : ":" 를 구분자로 하되, 4번째 키를 첫번째 기준으로, 3번째 키를 두번째 기준으로 삼아 오름차순 출력

  • ls -al | sort : ls -al 출력 결과를 정렬하여 출력

  • ls -al | sort -k 5n : ls -al 출력 결과를 5번째 키워드를 숫자로 간주하여 정렬하여 출력

  • ls -al | sort -k 5 -r : ls -al 출력 결과를 5번째 키워드를 숫자로 간주하여 내림차순으로 정렬하여 출력

  • sort -u : unique 중복된 결과에 대해서는 1개만 노출

7. uniq

  • 중복된 내용을 제거하고 출력한다.

  • uniq [파일명] | nl : 파일 내에 있는 중복값을 제거하고 라인번호를 붙여 출력

  • sort [파일명] | uniq | nl

    • 파일 내부를 이름순으로 정렬한 뒤

    • 중복을 제거하고

    • 라인번호를 붙여 출력

  • sort [파일명] | uniq -i | nl

    • 파일 내부를 이름순으로 정렬한 뒤

    • 대소문자를 무시하고 중복을 제거한 뒤

    • 라인번호를 붙여 출력한다.

  • sort [파일명] | uniq -d | nl

    • 파일 내부를 이름순으로 정렬한 뒤

    • 중복된 항목만

    • 라인번호를 붙여 출력한다.

  • sort [파일명] | uniq -u | nl

    • 파일 내부를 이름순으로 정렬한 뒤

    • 중복되지 않은 내용만

    • 라인번호를 붙여 출력한다.

  • grep "[keyword]" *.c | awk -F: '{ print $1 }' | uniq

    • [keyword] 를 포함한 확장자 c 파일들 목록에서

    • 확장자를 제외하고 파일명만 추려서

    • 중복을 제거한 뒤 출력한다.

8. cut

  • head /etc/passwd | cut -d ':' -f 1,7

    • -d : tab 대신 사용할 delimiter 지정

    • -f : 필드(컬럼) 선택

  • head /etc/passwd | cut -d ':' -f 1,7 --output-delimiter='==>'

    • --output-delimiter=STRING : 출력시 사용할 구분자 지정

  • ls -al | cut -b -10

    • ls -al 결과를 10바이트까지 출력

  • ls -al | cut -b -10 --complement

    • 위의 결과와 반대로 출력

  • ls -al | cut -c 10

    • 10번째 글자만 출력

  • ls -al | cut -c 1-15

    • 1부터 15번째 글자까지 출력

9. tr

  • translate. 어떤 내용을 변환한다.

  • head /etc/passwd | tr ':' '^‘

    • 모든 : 을 ^으로 변환한다.

  • head /etc/passwd | tr [:lower:] [:upper:]

    • 모든 소문자를 대문자로 변환한다.

  • head /etc/passwd | tr -d ':'

    • 모든 : 을 지운다.

  • head /etc/passwd | tr ':' '\n'

    • 모든 :을 개행문자로 변환한다.

  • ls -al | tr -d [:blank:]

    • 모든 공백문자열을 지운다.

  • ls -al | tr -d [:space:]

    • 모든 공백문자열+개행을 지운다.

  • ls -al | tr -s ' '

    • 반복되는 공백을 지운다.

10. sed

  • stream editor

    • - {RANGE}p : range 내에서 print

    • - {RANGE}d : range 내에서 삭제 delete

    • - /SEARCHPATTERN/p : print SEARCHPATTERN과 매치되는 라인을 출력

    • - /SEARCHPATTERN/d : SEARCHPATTERN 과 매치되는 라인을 삭제

    • - s/REGEX/REPLACE/ : REGEX에 매치되는 부분을 REPLACE로 교체(substitute)

  • sed -n

    • sed 자체로 원래 출력되는 내용을 출력하지 않음

  • head /etc/passwd | sed '1,3p'

    • 1라인부터 3라인까지 출력한다.

    • 기존에 head 명령어로 인해 출력예정이었던 원래 10개의 리스트에 1라인부터 3라인가지 한번씩 더 출력된다.

  • head /etc/passwd | sed -n '1,3p'

    • 1라인부터 3라인까지 출력한다.

    • 기존에 head 명령어로 인해 출력예정이었던 원래 10개의 리스트는 출력하지않고 1라인부터 3라인 까지만 출력된다.

  • head /etc/passwd | sed -n '/nologin/p'

    • nologin 단어를 포함한 라인만 출력한다.

  • head /etc/passwd | sed -n '/nologin/d'

    • nologin 단어를 포함한 라인을 삭제한 뒤 출력한다.

  • head /etc/passwd | sed -n '/bin:/p'

    • bin: 가 포함된 라인만 출력한다.

  • head /etc/passwd | sed '/bin:/d'

    • bin: 단어가 포함된 라인을 삭제하고 출력한다.

  • head /etc/passwd | sed 's/root/ROOT/'

    • 제일 처음 등장하는 root에 대하여 ROOT 로 교체한다.

  • head /etc/passwd | sed 's/root/ROOT/g'

    • 모든 root에 대하여 ROOT 로 교체한다.

  • head /etc/passwd | sed '3,5 s/:/==>/g'

    • 3라인부터 5라인까지의 범위 중에서 모든(g) :을 => 로 교체한다.

  • head /etc/passwd | sed -n '/games/,+2p'

    • -n : 전체를 출력하지않고, 뒤의 조건에 맞는 경우만 출력

    • games 키워드를 가진 라인부터 그 이후의 2개의 라인까지 출력한다.

11. awk

  • 텍스트 처리 script language

    • - -F : file seperator 지정

    • - $1, $2, $3 .. : Nth field

    • - NR : number of records

    • - NF : number of fields

    • - FS : field seperator (default : white space)

    • - RS : record seperator (default : new line)

    • - OFS : output field seperator

    • - ORS : output record seperator

  • head /etc/passwd | awk '/nologin/ {print}'

    • "nologin" 단어를 포함하는 라인을 출력한다.

  • head /etc/passwd | awk -F: '/nologin/ {print $1, $7 }'

    • seperator : 을 기준으로 "nologin" 단어를 포함하는 라인에 대하여 첫번째 필드와 7번째 필드를 각각 출력한다.

  • head /etc/passwd | awk -F: '/nologin/ {print NR, $1 }'

    • seperator : 을 기준으로 "nologin" 단어를 포함하는 라인에 대하여 라인 번호와 첫번째 필드를 출력

  • head /etc/passwd | awk -F: '/nologin/ {print $1, NF }'

    • seperator : 을 기준으로 "nologin" 단어를 포함하는 라인 중에서 1번째 필드와 그 라인의 총 필드 수를 출력

  • head /etc/passwd | awk -F: '/nologin/ {print $1 "->" $NF }'

    • seperator : 을 기준으로 "nologin" 단어를 포함하는 라인 중에서 "1번째 필드 -> 가장 마지막 필드"를 출력

12. find

  • 검색

  • 옵션

    • -name, -regex, -empty, -size(-N, +N)

    • 타입

      • -type d : directory

      • -type p : named pipe

      • -type f : regular file

      • -type l : softlink

      • -type s : socket

    • 권한

      • -perm mode : 정확히 일치하는 파일

      • -perm +mode : 모든 flag가 포함된 파일

      • -perm /mode : 어떤 flag라도 포함된 파일

    • 명령어

      • -delete : 파일 삭제

      • -ls : ls –dils 명령 수행

      • -print : 파일 이름 출력

      • -printf : 파일 이름을 포맷에 맞게 출력

      • -exec : 주어진 명령 수행

      • -execdir : 해당 디렉터리로 이동하여 명령 실행

      • -ok : 사용자에게 확인 후 exec

      • -okdir : 사용자에게 확인 후 실행 execdir

  • find . -name "*.py“

    • 현재 디렉토리에서 파일이름 중 .py 를 포함한 파일을 모두 찾는다.

  • find pwd -name “*.py”

    • 현재 디렉토리에서 파일이름 중 .py 를 포함한 파일을 모두 찾는다.

  • find . -regextype egrep -regex '.*hash.*.c$'

    • hash 단어를 포함하고, 확장자가 .c 로 끝나는 파일을 찾는다.

  • find . -empty

    • 현재 디렉토리에서 빈 파일을 모두 찾는다.

  • find . -type d

    • 현재 디렉토리에서 모든 디렉토리를 찾는다.

  • find . -type f

    • 현재 디렉토리에서 모든 파일을 찾는다.

  • find . -perm 0644

    • 권한이 644인 항목을 모두 찾는다.

  • find . -perm /u+x

    • 권한이 u+x 인 항목을 모두 찾는다.

  • find -perm /g+w

    • 권한이 g+w 인 항목을 모두 찾는다.

  • find -type f -perm 644 -printf '%f-%i\n'

  • find -type f -name "*.log" -exec stat {} \;

    • 파일명에 .log 가 존재하는 파일들에 대해서 stat 을 출력한다.

  • find . -type f -perm 755 -execdir pwd ; | uniq

  • find . -type f -name "README" -ok rm {} ;

    • 파일명이 README 인 파일에 대해서 사용자에게 물어본 뒤, 삭제

13. grep

  • 파일 내용 중 원하는 내용을 찾는다.

  • grep [options] PATTERN [FILE...]

    • -r : recursive

    • -i : ignore case

    • -v : invert match. 매치가 안되는 것을 조회

    • -q : quiet mode. 검색이 성공했을 때, exit status 를 받아올 수 있는데 결과값 말고, 성공과 실패만 알고 싶을 때 이용한다.

  • grep "run" *.log | awk -F: '{ print $1 }' | sort -u

    • run 이라는 단어를 포함하고

    • 확장자가 .log 인 파일들 중에서

    • : 를 기준으로 나누어 첫번째 변수를 프린트한 결과를 unique 하게 정렬한다.

  • grep run *.log -q / grep dkahkdlshksld *.log

    • run 키워드가 포함되었고 + 확장자가 log 인 파일들을 조회한다.

    • -q : 검색 결과를 프린트하지 않고, 성공과 실패 (0과 1)로만 반환하되 프린트하지 않는다.

      • 이를 조회하기 위해서는 echo $? 로 결과를 확인할 수 있다.

  • grep "<run>" *.log

    • run 이라는 단어와 정확히 일치하는 내용만 출력한다.

  • grep "^run" *.log

    • run 으로 시작하는 내용만 출력한다.

  • grep "^static.*(void)$" *.c

    • static 으로 시작하고, 임의의 단어가 주어지다가 (void)로 끝나는 내용만 출력한다.

  • apropos [keyword]

    • = man -k [keyword]

    • man page 에 포함되어있는 키워드를 찾는다.

  • apropos pthread -s 7

    • 탐색할 섹션을 콜론으로 구분하여 입력

  • apropos '^sem_'

    • sem_ 로 시작하는 명령어의 사용법을 찾는다.

  • apropos '.*'

  • apropos '.*' -s 5:6:7

    • 탐색할 섹션을 콜론으로 구분하여 입력

14. locate

  • 파일의 위치를 찾아 보여준다. 시스템 전체를 대상으로.

  • 파일의 위치를 빠르게 검색해서 보여주기 위해 시스템 시작시에 updatedb 에 미리 파일의 위치정보를 업데이트시켜놓는다.

  • locate 명령어를 수행하면, updatedb 가 저장해놓은 db 파일 내에서 검색하므로 누락 파일이 생길수도 있다.

  • 업데이트 시점은 cron 을 이용해서 OS 가 진행한다.

  • locate -i

    • 대소문자 구분없이 검색

  • locate -l 10

    • 출력 결과를 LIMIT 개수 만큼만 출력한다.

  • locate -n 10

    • 출력 결과를 10개 만큼만 출력한다.

  • locate --regex "/usr/src/.*\<main.c$"

    • PATTERN 에 맞는 파일들을 찾아 위치 출력

15. which

  • 실행 파일의 위치를 보여준다. 일반 텍스트 파일은 검색이 되지 않는다.

  • which ls / which chmod

    • 명령어에 해당하는 실행파일의 위치를 프린트한다.

  • which ls strace chmod

    • 두 실행파일의 위치를 동시에 보여준다.

16. ps

  • process status 출력

    • -e : all processes

    • -f : full-format

    • -L : print including thread

    • --forest : tree type print

    • -o : output formatting

    • --sort : sorting

  • <output 컬럼>

    • TTY : terminal

    • c : cpu load - cpu의 몇 %를 차지하고 있는지

  • ps -ef

    • 모든 프로세스를 full format 으로 출력

  • ps -ef | grep java

    • 보통 서버에서 앱이 백그라운드에서 실행되고 있을 때, 모니터링을 위해서 사용한다.

  • ps --ppid 1033 -f

    • 자식의 프로세스 아이디가 1033 인 프로세스를 full format 으로 출력

  • ps -ef --forest

    • 모든 프로세스를 트리 형태로 출력

  • ps -eF --sort=%mem | head

    • memori utilization 을 기준으로 정렬하여 10줄 까지만 출력하라

    • -F : 좀 더 많은 컬럼 정보를 보여준다.

  • ps -eF --sort=-%mem

    • -%mem : 메모리가 가장 높은 것부터 출력 (내림차순으로 출력)

  • ps -eo,pid,c,user,args --sort pid

    • -o : output 을 pid, c, user, args 만 출력하라

17. top

  • 프로세스를 어떤 기준으로 정렬하여 n개의 프로세스를 조회/모니터링

  • <COMMANDS>

    • space : update

    • q : quit

    • c : full command line search

    • 1(number) : 모든 CPU 상태를 조회한다.

  • <SORTING>

    • M : memory usage

    • P : CPU usage

    • N : process ID

    • T : running time

    • R : reverse order

18. lsof

  • 열려있는 파일 (일반파일, 소켓, 디바이스 등) 목록을 조회한다. (=ls opened file)

    • -U : unix domain socket

    • -i : internet domain socket

    • -p : specific pid

    • -u : user ID

  • lsof -U : unix domain

  • lsof -i 4 : ipv4 only

  • lsof -i tcp : tcp only

  • lsof -u `whoami` : 현재 로그인한 사용자 소유의 열린 파일정보 조회

  • lsof -c Xorg : Xorg 가 열고있는 파일들

19. netstat

  • 네트워크/소켓 상태를 조회할 수 있는 툴

    • -a : all types of port

    • -n : numerical address

    • -t : TCP socket only

    • -u : UDP socket only

    • -x : unix domain socket only

    • -l : listening socket only

    • -p : pid

    • -r : routing table

    • -s : network statistics

  • netstat -an : 전체를 출력하되, 숫자 주소 형태로 출력한다.

  • netstat -t

  • netstat -p : 뒤에 pid 및 program name 이 출력됨

  • netstat -s : 프로토콜별로 통계정보 출력

  • netstat -r : 라우팅 테이블을 검색한다.

20. sysctl

  • 여러가지 시스템 설정을 조회, 설정한다. 윈도우의 레지스트리와 비슷한 설정방법이다.

    • -w : set value

    • -r : variable search pattern

  • sysctl -a | grep net

    • -a : all variables

  • sysctl -a -r 'net' --names

    • -N : print variable only

  • sysctl -a -r 'net' -values

    • -n : print value only

  • sysctl -w net.ipv4tcp_syn_retries=4

    • 특정 설정값을 4로 변경

21. df

  • disk 의 사용량을 조회한다.

  • df -a

    • -a : 모든 것을 출력

  • df -h

    • -h : human readable 형식으로 출력

  • df -t ext4

    • -t : 지정된 파일시스템에 대해서만 출력

  • df FILE

22. du

  • 특정 파일이나 디렉토리가 점유하고 있는 disk usage 를 조회한다.

  • du -a : all files including directories

  • du -b L byte

  • du -h : human readable

  • du -d --maxt-depth=N : set max depth

  • du -c : total sum

  • du -s : summary

23. dmidecode

  • SMBIOS 조회 툴

    • DMI (Desktop Management Interface)

    • SMBIOS (System Management BIOS) : BIOS 가 생성한 시스템 하드웨어 정보. (old name : DMIBIOS)

  • dmidecode -t bios

    • 지정된 타입만 출력한다.

  • dmidecode -s system-uuid

    • 지정된 키워드만 출력한다.

24. free

  • 메모리 사용량 조회 툴

  • cat /proc/meminfo 기반으로 조회

  • free -w -h

    • -w :

    • -h " human readable output

  • free -s 1 -c 10 -h

    • -s N : --seconds N. N초마다 반복 출력

    • -c N : --count N. N회 출력 후 종료

25. lscpu

  • cpu 구조정보를 출력해준다.

  • -e, --extended : extended readable format

  • -p, --parse : parsable format

  • lscpu

  • lscpu -e

  • lscpu -e=SOCKET,CORE,CPU

  • lscpu -p=SOCKET,CORE,CPU

참고) 요즘 컴퓨터의 CPU

  • 요즘 컴퓨터들은 다음과 같이 구성되어있다.

    • processor : 1개

    • core : 2개

    • thread : 4개 -> 이것을 두고 CPU가 4개이다라고 말한다.

  • 캐시메모리

    • L1 : 코어 내에서만 공유되는 캐시 메모리

    • L2 : 코어들간 공유되는 캐시 메모리

    • L3

root@e6e99a9b4209:/# lscpu
Architecture:           x86_64
  CPU op-mode(s):       32-bit, 64-bit
  Address sizes:        39 bits physical, 48 bits virtual
  Byte Order:           Little Endian
CPU(s):                 8    //processor or core 가 아닌 logical 한 cpu 를 의미한다. (thread)
  On-line CPU(s) list:  0-7
Vendor ID:              GenuineIntel
  Model name:           Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    CPU family:         6
    Model:              158
    Thread(s) per core: 1  //hyper thread 가 적용 안되어있는 core 임! 
    Core(s) per socket: 1
    Socket(s):          8
    Stepping:           13
    BogoMIPS:           4600.00
    Flags:              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht pbe syscall nx pdpe1gb lm co
                        nstant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq dtes64 ds_cpl ssse3 sdbg fma cx16 xtpr pcid sse4_1 sse4_2 movbe p
                        opcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase bmi1 avx2 bmi2 erms xsaveopt arat
    //flags : intel 에서 정의하고 있는 기능목록                         
Caches (sum of all):
  L1d:                  256 KiB (8 instances)    //d : data
  L1i:                  256 KiB (8 instances)    //i : instruction 
  L2:                   2 MiB (8 instances)
  L3:                   128 MiB (8 instances)
Vulnerabilities:
  Itlb multihit:        KVM: Mitigation: VMX unsupported
  L1tf:                 Mitigation; PTE Inversion
  Mds:                  Vulnerable; SMT Host state unknown
  Meltdown:             Vulnerable
  Mmio stale data:      Vulnerable
  Spec store bypass:    Vulnerable
  Spectre v1:           Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
  Spectre v2:           Vulnerable, STIBP: disabled
  Srbds:                Unknown: Dependent on hypervisor status
  Tsx async abort:      Not affected

  
root@e6e99a9b4209:/# lscpu -e
CPU SOCKET CORE L1d:L1i:L2:L3 ONLINE
  0      0    0 0:0:0:0          yes
  1      1    1 1:1:1:1          yes
  2      2    2 2:2:2:2          yes
  3      3    3 3:3:3:3          yes
  4      4    4 4:4:4:4          yes
  5      5    5 5:5:5:5          yes
  6      6    6 6:6:6:6          yes
  7      7    7 7:7:7:7          yes
  
root@e6e99a9b4209:/proc# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 158
model name	: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
stepping	: 13
cpu MHz		: 2300.000
cache size	: 16384 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht pbe syscall nx pdpe1gb lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq dtes64 ds_cpl ssse3 sdbg fma cx16 xtpr pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase bmi1 avx2 bmi2 erms xsaveopt arat
bugs		: cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data
bogomips	: 4600.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6

PreviousvimNextDesign Pattern

Last updated 2 years ago

Was this helpful?

🏗️