일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- STREAM
- container
- 방화벽
- JPA
- sonarQube
- Jenkins
- 캐시서버
- post
- LAN어댑터
- Pipeline
- AOP
- Linux
- Set
- tomcat
- Java
- docker
- gradle
- IntelliJ
- 액세스회선
- map
- jdk
- DevOps
- Spring
- Collection
- mybatis
- cloud
- 라우터
- ansible
- 소켓
- 허브
- Today
- Total
목록전체 글 (195)
거북이-https://velog.io/@violet_evgadn 이전완료
su ◎ su란? su는 "Substitue User"의 줄임말로써 현재 계정을 로그아웃하지 않은 상태로 다른 사용자의 권한을 획득하기 위해 활용하는 명령어이다. "su [Username]"을 통해 명령어를 사용할 수 있으며 Root 권한을 가진 계정에 접근하기 위한 용도로 많이 활용한다. 참고로 Username을 입력하지 않고 "su" 명령어만 입력하면 자동으로 Root 권한 계정으로 로그인을 시도한다. ◎ Option '-' su를 제대로 활용하기 위해선 Option "-"를 잘 알아야 한다. "-"는 "-l" 혹은 "--login"과 동일한 옵션인데 이 '-'의 유무는 환경변수 및 Working Directory에 영향을 준다. 그렇다면 "su root"와 "su - root"를 비교해 보자. 1...
VI & VIM ◎ VI(VIM)이란? VI는 UNIX 계열 OS에서 매우 많이 활용되는 편집기로써 "Visual Editor"의 줄임말이다. 각종 문서를 Linux에서 편집할 수 있게 해주는 텍스트 기반 편집기로써 VI Editor가 Linux 활용의 첫걸음이라고 할 수 있다. VI는 3가지 모드를 1개 기능에 합쳐 입력값을 통해 모드를 자유자재로 넘나들며 편집이 가능하다는 특징을 가지고 있다. VIM은 "VI iMproved"의 약자로써 프로그램 소스 코드 편집 시 유용한 수많은 추가 기능이 포함된 VI 확장판이다. VIM은 VI의 모든 기능을 가지고 있으며 VI에서 자주 발생하는 몇 가지 문제들도 처리해 놓은 VI의 개량판이라고 이해하면 될 것이다. VIM에서 해결되는 대표적인 VI의 문제는 "방향..
파일 검색/수정 ◎ find 리눅스 파일 시스템에서 파일을 검색하는 데 사용하는 명령어로 "표현식"을 사용하여 파일을 검색한다. find [Option] [Path] [표현식] [검색 Keyword] # Path 디렉토리 및 하위에 있는 모든 파일 중 표현식과 일치하는 파일들 검색 여기에서 중요한 점이 "하위에 있는 모든 파일들"을 기준으로 검색한다는 것이다. 아래 사진을 보자 현재 practice에는 a1 ~ a8까지의 파일이 존재하고 dir 디렉터리 내에 a9 파일이 존재한다. find를 통해 결과를 확인하면 "./dir/a9"이 나오는 것을 확인할 수 있다. 즉 하위 경로에 존재하는 파일도 검색 대상 것이다. find에서 Option은 그렇게까지 중요하진 않으며 "표현식"이 매우 중요하다. 표현식 ..
들어가기 앞서 Linux 명령어는 절대로 외우는 것이 아니다. Linux 명령어 개수만 아무리 적게 잡아도 몇백 개 될 것이고 여기에 Option까지 포함시키면 사실상 무한하다고도 볼 수 있다. 이 모든 걸 다 외운다는 건 말이 안 되는 것이다. 단지 Linux 명령어로 뭘 할 수 있는지는 알아야 명령어를 검색해 사용할 수 있기에 명령어가 어떤 기능을 하는지 정도는 알아두고 나중에 필요할 때마다 찾아서 활용하도록 하자.(그리고 자주 활용하는 것은 자연스럽게 외워질 것이다.) Linux 명령 중단 및 종료 Linux는 명령 중단을 위해선 "Ctrl + c", 명령 종료를 위해선 "Ctrl + d"를 사용한다. 명령 중단인 "Ctrl + c"는 Process 자체를 종료시키는 키이다. 커널에 사용자 입력으로..
Unix Unix는 멀티태스킹이 가능한 Multi-User OS이다. 또한 Shell을 활용하여 사용자가 OS에 명령을 내릴 수 있으며 계층적인 File System을 가진다는 특징을 가지고 있다. 멀티 태스킹은 모두가 알 것이니 넘어가고 Multi-User에 대해 자세히 알아보자. 내가 현재 내 노트북을 활용하고 있다. 이때 친구가 내 컴퓨터를 활용하고 싶다고 가정하자. 이 경우 어떻게 해야 할까? 당연히 내가 자리를 비켜주거나 내 일이 끝날 때까지 친구는 기다려야 할 것이다. 이토록 여러 사용자가 동시에 동일한 OS를 활용할 수 없는 OS를 Single User System이라 하며 대표적으로 Mac OS, Windows가 있다. Single User System은 다중 사용자의 사용을 고려하지 않아..
Linux를 공부하기 위해 가장 필요한 것은 무엇일까? 바로 Linux 환경을 일단 만들어 놓는 것이다. 우리가 자주 알고 있는 Linux 환경은 아마 AWS EC2나 GCP 같은 Cloud 환경이 있을 것이다. 하지만 Cloud 호스팅 업체는 Linux 환경 Setting에 대해 모든 권한을 주지는 않는다.(어떻게 보면 보안적으로 당연하다.) 하지만 Linux 공부를 제대로 하기 위해선 서버에 대한 root 권한을 가져 세부 설정까지 할 수 있어야 한다. 따라서 이런 설정을 위해 Root 권한을 가지는 Linux 환경을 Setting 할 필요가 있다. 1. VM Ware 설치 https://www.vmware.com/kr/products/workstation-player/workstation-playe..
코딩 테스트 시 필요한 이유 BitMask는 코딩 테스트에서 많이 활용되는 기법은 아니다. 만약 BitMask를 활용해야 하는 문제라면 개인적으로는 다른 문제를 푸는 게 더 효율적이라 생각할 정도로 굳이? 싶은 기법이긴 하다. 하지만 개념 및 사용 방법을 알지만 효율을 위해 다른 문제를 푸는 것과 아예 몰라서 다른 문제를 푸는 것은 매우 다른 상황이라고 생각하기 때문에 한 번 정리해보겠다. 아래에 나오는 모든 수들은 10진법이 아닌 2진법이라고 간주하고 정리하겠다. 이후 어떻게 10진법에서 BitMask 기법을 활용할 수 있는지 언급하겠다. Shift 연산(>>, 2) | 1 // (origin >> 2) | 1 -> (00010) | 1 -> 00011 추가로 BitMask는 주로 배열 Index로 쓰..
Kruskal Algorithm 크루스칼 알고리즘을 구현한 이후 제대로 구현됐는지 확인하기가 어려워 백준 문제 중 하나를 푼다는 생각으로 구현했다. https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net class Edge implements Comparable { // p1 - p2 사이 간선 길이가 len. // len 기준 오름차순 정렬해야 하므로 Comparable 인터페이스를 상속시킴 int p1; int p2; int len; public Edge(int p1, int p2, int len){ this.p1 = p1; this.p..
Union-Find 알고리즘 Kruskal MST에서 사용되는 알고리즘 중 "Union-Find 알고리즘"이 존재한다. 이를 먼저 알아야 Kruskal MST를 구현할 수 있으므로 이 알고리즘부터 알아보자. ◎ Union-Find 알고리즘이란? Union-Find는 Disjoint Set을 만들 때 사용하는 알고리즘이다. Disjoint는 "분리된, 별개의"라는 뜻을 가지고 있다. Disjoint Set이란 "분리된 집합"이라는 의미로 교집합이 존재하지 않는 부분집합들을 조작 및 저장하는 자료구조이다. 모든 부분 집합 사이에 교집합이 없는 상호 배타적인 부분 집합들로 이뤄진 자료구조라 할 수 있다. ◎ Union-Find 연산 make-set(x) Set을 초기화하는 함수 x 자체가 하나의 부분 집합이 ..
코딩 테스트 시 필요한 이유 코딩 테스트에서 가장 많이 나오는 문제 유형이 문자열 처리 유형이라고 한다면 가장 어려운 문제를 꼽으라면 그래프 문제를 뽑을 것 같다. Trie를 활용하여 풀어야 하는 문제가 아닐 경우 문자열 처리 문제는 대부분 Lv3 정도의 문제에 속하지만 그래프는 Lv3 ~ Lv4 널리 퍼져있고 문제 난이도 자체도 꽤 어려운 편이라고 할 수 있다. 그래프 문제 같은 경우 종이의 사용이 한정되어 있는 코딩 테스트의 경우 상황을 상상하기가 힘들고 대부분의 그래프 문제의 해결 방법은 Brute Force 방식인 경우가 많아 난이도가 증가한다고 생각한다. 그래프는 이 Brute Force 방식을 얼마나 효율적으로 수행하는지가 중요해지고 이 때문에 이미 수많은 알고리즘이 존재하며 이를 모를 경우 ..