전체 글
-
리눅스에 도커 설치하기Linux 2022. 8. 12. 17:09
Centos 7 기준으로 작성되었습니다. # docker install yum install docker # Docker service 실행 service docker start # 부팅시 자동 실행 설정 chkconfig docker on 위 방법으로 도커를 설치하였을 때에는 `1.13.1` 버전이 설치 되었고, docker image를 push 할때 에러가 발생하였다. 그래서 최신 버전으로 도커를 설치하는 방법을 찾아봤다. Docker 최신버전 설치 1. Docker 구버전 삭제 $ yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker..
-
Golang 실행 시간 측정Golang 2022. 7. 28. 16:34
프로그램의 성능을 확인하기 위해 실행시간을 측정해야 할 때가 있다. 이번에는 Golang에서 코드가 실행되는데 걸리는 시간을 측정하는 방법을 알아보자. time 패키지 사용 import ( "time" ) time 패키지는 시간을 표현하기 위한 Time 타입을 제공한다. 나노초 단위의 정밀도를 가진 구조체인데 세가지의 프로퍼티를 가진다 type Time struct { wall uint64 ext int64 loc *Location } 위 세가지의 프로퍼티의 정확한 쓰임새를 이해하지는 못했지만 time 패키지를 사용하는데는 아무런 문제가 없다. 시간 측정 time 패키지는 많은 기능을 제공해주지만 실행 시간 측정을 위해서는 다음 2가지만 알면 된다 `time.Now()`, `time.Since()` `t..
-
Command Line ArgumentGolang 2022. 7. 25. 09:56
Go 프로그램의 main() 함수는 다른 언어 처럼 argument 파라미터를 가지고 있지 않아서 os.Args를 사용해야 한다. os.Args 는 문자열 슬라이스로 정의되어 있고, Args는 프로그램의 Command Line 정보를 프로그램 명부터 순서대로 담고 있다. 프로그램이 2개의 agrument를 가진다고 가정했을 때, os.Args[0:1]는 실행되는 Go 프로그램 이름을 가지며, os.Args[1:2]는 첫번째 argument os.Args[2:3]는 두번째 argument를 가진다. example package main import ("fmt"; "os") func main() { fmt.Println("args : ", os.Args[0:1]) fmt.Println("args : ", o..
-
고루틴(goroutine)Golang 2022. 7. 12. 17:02
goroutine Go 프로그램 안에서 동시에 독립적으로 실행되는 흐름의 단위로, 스레드와 비슷한 개념 다음과 같이 go 키워드로 함수를 실행하면 새 고루틴이 만들어진다. go f(x, y) 예제 package main import ( "fmt" "time" ) func main() { fmt.Println("main 함수 시작", time.Now()) go long() go short() time.Sleep(5 * time.Second) // 5초 대기 fmt.Println("main 함수 종료", time.Now()) } func long() { fmt.Println("long 함수 시작", time.Now()) time.Sleep(3 * time.Second) // 3초 대기 fmt.Println(..
-
SELinuxLinux 2022. 7. 12. 16:46
SELinux 란 관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게 하는 Lunux 시스템용 보안 아키텍처 SELinux 동작 모드 enforcing SELinux의 기본값으로 활성화 상태, 보안 정책이 실행되어 로그 기록과 보호를 모두 수행하는 상태 permissive SELinux가 보안정책에 대해서 로그는 기록하지만 실제 차단되지 않는 상태 disabled SELinux가 비활성화 되어 동작하지 않는 상태 SELinux 상태 확인 sestatus // disable [root@localhost ~]# sestatus SELinux status: disable // enabled [root@localhost ~]# sestatus SELinux status: enabled SELinuxfs m..
-
트랜잭션 (Transaction)내가 몰랐던 IT 용어 2022. 7. 11. 16:49
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들 특징 원자성 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다. 일관성 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다. 독립성 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다. 지속성 트랜잭션이 성공적으로 완료되었을 경우, 결과는 영구적으로 반영되어야 한다. 트랜잭션의 상태 Active 현재 실행 중인 상태 Faild 실행 중 오류가 발생하여 중단 된 상태 Aborted 비정상 종료되어 Rollback이 수행 된 상태 Partially Committed 마지막 까지 실행되고 ..
-
리눅스 디렉토리(파일) 만들기Linux 2022. 5. 24. 17:23
mkdir 명령어 make directory의 약자로 리눅스 디렉토리(폴더)를 생성한다. $ mkdir [옵션] [디렉토리 이름] ex) $ mkdir test/ $ ls test ## 한번에 여러 디렉토리도 생성이 가능하다 $ mkdir test1/ test2/ test3 $ ls test1 test2 test3 mkdir 옵션 옵션설명 -m 디렉토리 접근 권한 설정, default : 755 -p 상위 경로도 함께 생성 -v 디렉토리 생성시 메세지를 출력 -z SELinux 보안 설정 -help 도움말 출력 --version mkdir 정보 출력 -p 예시 $ mkdir /home/test/test mkdir: cannot create directory ‘/home/tets/test’: No such..