일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Android
- linux
- React
- OS
- MongoDB
- Crawling
- DATABASE
- css
- algorithm
- HTML
- macos
- TypeScript
- ubuntu
- postman
- node.js
- python
- sequelize
- mysql
- S3
- Kotlin
- OOAD
- Express
- wireshark
- Util
- mongoose
- typeorm
- AWS
- Network
- docker
- Scheduling
- Today
- Total
목록
반응형
전체 글 (146)
SW

서론 이번 글에서는 패킷 분석 툴인 와이어샤크(Wireshark)를 Ubuntu 환경에서 설치하고 실행하는 방법을 간단하게 다뤄보고자 한다. 와이어샤크를 이용하면 로컬 네트워크 내에서 발생하는 다양한 패킷 정보를 실시간으로 수집할 수 있으며 다양한 필터링 기능을 통해 본인이 찾고자 하는 내용 또한 분석할 수 있다. 또한, 패킷 정보 수집 뿐만 아니라 미리 생성되어 있는 패킷 캡쳐(.pcap) 등의 파일도 분석해주는 기능을 제공하고 있다. How to install Wireshark $ sudo apt update $ sudo apt upgrade 두 개의 명령어를 통해 설치 가능한 패키지 목록 최신화를 진행한다. UPDATE : 설치 가능 패키지 목록 최신화 UPGRADE : 해당 목록에 대해 실제 업데..

서론 tcpdump는 네트워크 상에서 발생하는 패킷을 캡쳐할 수 있는 모듈이다. Wireshark 툴을 이용하여 패킷을 분석할 때, 네트워크 상에서 발생하는 패킷을 실시간으로 수집된 패킷에 대한 분석을 진행할 수도 있지만 이미 수집된 패킷 내용(.pcap)을 분석하기도 한다. 그래서 이번 글에서는 .pcap 파일을 만드는 방법에 대해서 간단하게 알아보고자 한다. 테스트 환경은 Ubuntu 22.04 LTS 환경에서 진행했다. Intsall tcpdump 기본적으로 리눅스에 tcpdump가 깔려있지만 가끔씩 설치되어 있지 않은 경우도 발생한다. $ tcpdump --help 위 명령어를 입력했을 때 tcpdump 사용 메뉴얼이 나오면 정상적으로 설치가 되어있는 것이다. 그렇지 않은 경우에는 아래 명령어를 ..

서론 이번 글에서는 데이터베이스에 설정되어 있는 포트 번호(Port Number)의 확인 방법에 대해서 간단하게 알아보고자 한다. 방법은 총 2가지가 존재하며 첫번째는 config 파일을 통해서 확인하는 방법이고, 두번째는 쿼리문을 통해서 확인하는 방법이다. 개발 환경은 Ubuntu 22.04 LTS 이다. 파일을 통해서 확인하는 방법 $ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 터미널에 위와 같이 명령어를 입력하면 mariaDB 서버 설정 파일로 접근할 수 있다. Basic Settings 부분으로 가면 위 사진과 같이 port가 주석처리 되어있는 것을 확인할 수 있다. (해당 부분이 존재하지 않는 경우도 있으며, 주석 처리가 되어있지 않은 경우도 있다.) ..

서론 이번 글에서는 VirtualBox를 통해 Ubuntu 설치 시 일어나는 오류 중 하나인 화면 잘림 현상에 대한 해결 방법에 대해서 간단하게 알아보고자 한다. 문제 우분투 설치를 진행하다보면 위 사진과 같이 체크박스만 보이고 아래에 다음 페이지로 이동하기 위한 버튼이 보이지 않는 경우가 종종 발생한다. 해결 방법 위와 같은 이슈가 생겼을 때에는 단축키 Alt+F7을 눌러서 문제를 해결할 수 있다. 단축키를 누른 후 마우스로 화면을 이동하거나 키보드 방향키를 통해 화면을 조정할 수 있다. 출처 virtualbox - I can't see the next button (ubuntu installation on vmware) - Ask Ubuntu I can't see the next button (ubu..

서론 프로그래머스 문제를 풀다가 약수의 개수를 구하는 과정에서 시간초과가 발생한 적이 있었다. https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 약수의 개수를 구해야 하는 숫자가 크지 않다면 시간 제한 내에 문제를 해결할 수 있지만 그렇지 않은 경우 시간 초과에 걸릴 확률이 높아질 수 있다. 그래서 이번 글에서는 파이썬을 이용하여 약수의 개수를 구할 때 시간복잡도를 줄여 효율적으로 약수의 개수를 구하는 방법에 대해서 간단하게 알아보고자 한다. ..

서론 이번 글에서는 파이썬의 collections 라이브러리에 있는 deque를 이용하여 리스트를 회전하는 방법을 간단하게 알아보고자 한다. 알고리즘 문제를 풀다보면 배열을 회전시켜야 하는 문제들을 종종 볼 수 있는데 deque를 사용하면 간단하게 구현할 수 있다. deque란 무엇인가? 먼저 deque는 양쪽 끝에서 삽입과 삭제를 할 수 있는 리스트 종류의 컨테이너이다. 파이썬에서 리스트를 생성하면 삽입과 삭제가 오른쪽 맨 끝에서 이루어지는 반면에 deque는 맨 앞에도 데이터를 삽입, 삭제할 수 있다는 장점이 있다. deque 사용 방법 먼저 배열 회전을 구현하기 전에 간단하게 deque 자료형 사용 방법을 알아보자. from collections import deque nums = [1, 2, 3,..

제약 사항 시간 제한 : 2 초 메모리 제한 : 512MB 문제 입력 출력 예제 입력 ABCBA // 예제입력 1 PALINDROME // 예제입력 2 ZZZ // 예제입력 3 예제 출력 4 // 예제 출력 1 10 // 예제 출력 2 -1 // 예제 출력 3 잘못된 접근 방식 s = input() answer = -1 for i in range(len(s)-1): temp = s[i] for j in range(i+1, len(s)): temp += s[j] # 부분 문자열 reverse = temp[::-1] # 부분 문자열을 뒤집은 변수 if len(temp) >= 2 and temp != reverse: answer = max(answer, len(temp)) print(answer) 브루트포스 ..

제약 사항 시간 제한 : 1.5 초 메모리 제한 : 128MB 문제 입력 출력 예제 입력 5 6 9 5 7 4 예제 출력 0 0 2 2 4 잘못된 접근 방식 import sys input = sys.stdin.readline n = int(input()) li = list(map(int, input().rstrip().split())) result = [] for i in range(len(li)-1, -1, -1): temp = li[i] st = [] if i == 0: # 맨 앞의 탑인 경우 result.append(0) else: for j in range(i-1, -1, -1): # 이전 탑들의 높이 탐색 if li[j] > temp and not st: st.append((li[j], j+1)..

서론 이번 글에서는 자바의 개념 중에서 많이 헷갈리는 추상 클래스와 인터페이스의 차이에 대해서 살펴보고자 한다. 추상 클래스와 인터페이스 개념 및 예제를 통해 어떤 차이가 있는지 알아보자. 기술 면접에서 두 차이에 대한 질문이 빈번하게 나오기 때문에 정확한 개념와 특징을 잘 알아두어야 한다. 추상 클래스 (Abstract Class) 자바에서 추상 클래스는 1개 이상의 추상 메서드(Abstract Method)를 포함하는 클래스를 의미한다. 추상 메서드 : 자식 클래스에서 반드시 오버라이딩(Overriding) 하여 사용해야 하는 메서드로 선언부만 존재하고 구현부가 없는 메서드를 의미한다. // 아래 코드와 같이 선언부만 존재하며 메서드 안에는 구현되어 있지 않다. abstract void func();..

서론 이번 글에서는 파이썬을 이용하여 영어로 구성된 문자열을 소문자, 대문자로 바꾸는 방법, 맨 앞의 문자만 대문자로, 나머지는 소문자로 바꾸는 방법, 마지막으로 각 단어의 맨 앞 글자는 대문자로, 나머지는 소문자로 바꾸는 방법에 대해서 간단하게 알아보고자 한다. 글 제목에서 언급했듯이 upper(), lower(), capitalize(), title() 메서드를 사용하여 구현할 수 있다. 영어 문자열을 대문자로 변환하기 영어 문자를 대문자로 변환하기 위해서는 파이썬의 upper() 메서드를 이용하여 구현할 수 있다. st = "hello, world!" print(st.upper()) # HELLO, WORLD! st = "안녕, World!" print(st.upper()) # 안녕, WORLD! ..