운영체제 (Operating System) 안녕하세요. 오늘은 쉘과 커널에 대해 알아보고자 합니다. 쉘과 커널에 대해 알아보기 전에 운영체제에 대해서 간단하게 짚고 넘어가려고 합니다. 운영체제 종류로는 Mac, Window, Linux, Unix 등이 있으며 CPU 스케줄링, 프로세스, 메모리, 디스크, I/O 디바이스 등을 관리하는 역할을 합니다. 간단히 말해 운영체제는 사용자와 컴퓨터 간에 통신과 자원 관리를 담당하고 있습니다. 그중 핵심적인 역할을 하는 소프트웨어가 바로 쉘과 커널입니다. 쉘과 커널 (Shell, Kernel) 쉘은 사용자가 운영체제의 서비스를 사용할 수 있도록 사용자의 입력을 기반으로 프로그램을 실행해 주는 역할을 한다. 즉, 커널과 사용자 사이의 인터페이스 역할을 담당합니다. (..
무료 강의 진짜일까? 안녕하세요 붕어빵테스트 MBTI와 같은 걸 개발해 볼까라는 생각에 웹 서핑 중 우연히 패스트캠퍼스 30일 무료강의를 보게 되었는데요. MBTI 코딩, 인공지능, 데이터 분석, 엑셀, 포토샵, 영상 편집 등 진짜 무료로 강의를 볼 수 있어서 추천해드리려고 합니다. 홈페이지에 들어가서 무료강의 메뉴를 클릭하면 위에 이미지와 같이 총 6개의 무료강의가 있어요. 저는 MBTI, 인공지능, 영상편집을 들어보고 싶단 생각이 있어 총 3개 수강했습니다. 무료강의 신청방법 1. 회원가입 패스트캠퍼스 회원가입을 합니다. https://fastcampus.co.kr/ 패스트캠퍼스 [직장인 실무교육] 프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교..
Linux 입출력 리눅스를 명령어를 보다보면 2>&1, 2>&1 &, 2>/dev/null 등의 명령어를 본 적이 있을 것이다. 이것은 리눅스의 IO Redirection 방식으로 표준 스트림의 흐름을 변경해가며 사용하는 것이다. 지금부터 천천히 살펴보자. IO Redirection은 말 그래도 Input Ouput Redirection이다. 리눅스에서의 모든 프로세스는 stdin, stdout, stderr 총 세 가지의 데이터 스트림을 갖고 있으며 각각 0, 1, 2로 표현하고 파일 디스크립터라고 불리운다.(주로 쉘에서 사용) 프로세스는 ls, mkdir, rm 등 리눅스의 모든 명령어를 의미한다. stdin - standard input (0) : 입력 stdout - standard output ..
프록시 팩토리 프록시 팩토리란 스프링에서 동적 프록시를 통합해서 관리해주는 클래스 팩토리이다. 프록시 팩토리를 사용하면, 인터페이스가 있을 경우 JDK 동적 프록시를 사용하고, 구체 클래스만 있으면 CGLIB 동적 프록시를 사용하도록 처리해준다. client의 요청이 오면 대상 Target 클래스의 정보를 파악하여 동적 프록시를 선택하여 반환해준다. JDK 동적 프록시는 InvocationHandler, CGLIB 동적 프록시는 MethodInterceptor를 각각 구현해야 하는데, 스프링에선 Advice라는 개념을 통해 공통 구현을 할 수 있도록 지원한다. Advice 개발자가 Advice를 구현하게 되면 동적 프록시 별로 요청오는 핸들러의 정보를 받아 실제 타겟의 로직을 실행시켜 준다. 즉, Adv..
프록시란? 프록시는 서버와 클라이언트 사이에서 통신을 대신해주는 역할을 하는 객체이다. 자바에서는 이 프록시를 통해서 JDK 동적 프록시와 CGLIB 프록시를 지원해서 프록시를 직접 생성하는 것이 아닌, 프록시 객체를 런타임 환경에서 자동으로 만들 수 있다. JDK 동적 프록시는 인터페이스의 구현체일 경우 생성되며, CGLIB 동적 프록시의 경우 인터페이스가 없는 구현체 클래스일 경우에 생성 된다. 스프링에서는 AOP 적용을 인터페이스 구현없이 할 수 있도록 기본 방식으로 CGLIB를 채택하여 사용하고 있다. (레거시는 JDK 동적 프록시 사용) JDK 동적 프록시와 CGLIB 프록시에 대해 알아보자. 프록시에 대한 개념은 하단의 포스팅을 참고하자. https://sasca37.tistory.com/27..
리눅스 디렉토리 구조 Linux는 Unix의 파일 시스템 계층 구조(FHS: Filesystem Hierarchy Standard)를 기반으로 사용한다. FHS 덕분에 대부분의 Linux 배포한에서 데이터가 비슷한 디렉토리 구조로 표현 되며, 최상위 계층인 루트 디렉토리(/)를 시작으로 트리 형태로 뻗어 나간다. man hier 명령어를 치면 디렉토리 구조에 대한 정보를 터미널에서 확인할 수 있다. 루트 디렉토리 (/) 루트 디렉토리는 Linux 파일 시스템의 최상위에 위치한 디렉토리이다. bin, lib 등의 모든 하위 계층의 정보를 담고 있다. rm 명령어를 통해 디렉토리를 지울 때 rm -rf / 는 사용하지 않도록 주의하자. /bin 디렉토리 /bin 디렉토리는 ls, cp, mv 등 기본 내장이..
grep 이란? grep 명령어는 텍스트 검색 기능을 제공하는 명령어로 유닉스 ed 텍스트 에디터의 명령어인 g/re/p에서 유래 되었다. ( g : global, r : regular expression, p : printprint) grep 명령어를 사용하면 문자나 정규 표현식 등 제시한 표현 방식에 맞는 라인을 찾아 출력해준다. grep 문법 grep [options] [pattern] [file] grep 옵션 정리 short long 설명 -c --count 패턴과 일치하는 라인 수만 출력 -h --no-filename 일치하는 줄을 표시하지만 파일 이름은 미출력 -i --ignore-case 대소문자 구별없이 검색 -r(-R) --recursive 지정한 위치에서 하위 디렉토리까지 재귀 탐색 ..
curl 이란? curl은 Client Url 이란 의미로 클라이언트에서 url을 사용해서 서버와 데이터를 송수신하는 명령어 툴이다. Linux, MacOS, Window 등 다양한 환경에서 HTTP, HTTPS, SMTP, TELNET, FTP, LDAP 등 다양한 프로토콜을 지원하여 통신 환경에서 자주 쓰인다. curl 사용법 curl [OPTIONS] [URL] curl의 OPTION은 short 형인 "-" 와 long 형인 "--" 를 제공한다. 가장 기본적인 사용법은 옵션 입력 후에 URL을 입력이다. short long 설명 -k --insecure https URL 접속 시 SSL 인증서 검사 없이 연결 -i --head HTTP 응답 헤더를 표시 -d --data POST 요청이나 JSO..