분류 전체보기

공부하면서 얻은 지식들

정규표현식

import re result = re.findall(regex, search_target) \d : 숫자를 대표하는 정규표현식, 한 글자만 찾는다. [ \d+ : 하나 혹은 그 이상의 연속된 숫자] [ \d* : 0개 이상의 숫자] \w : 글자를 대표하는 정규표현식 ? : 있거나 없거나 [-? : '-'가 있거나 없거나] [- ]? : '-' 혹은 공백이 있거나 없거나 {숫자} : 해당 숫자만큼 반복한다. {숫자1, 숫자2} : 숫자1부터 숫자2까지 반복한다. [a-z] : 알파벳 a부터 z까지 선택한다. [a-z]+ : 연속된 알파벳 소문자 [가-힣]+ : 연속된 한글 문자 \s : 공백 문자(스페이스, 탭, 뉴라인) \S : 공백 문자를 제외한 문자 \D : 숫자를 제외한 문자 \W : 글자 대표..

공부하면서 얻은 지식들

CUDA

Computed Unified Device Architecture CUDA : 그래픽 처리 장치에서 수행하는 알고리즘을 C언어와 같은 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술이다. CUDA는 엔비디아가 개발하였다. 더 자세한 서술 이전에 CPU와 GPU에 대해 간략히 알아보자. CPU는 다양한 시스템 자원을 제어해야 하고 복잡한 명령들을 처리해야하기 때문에 연산을 위한 장치 이외에도 다른 구성요소들이 존재한다. GPU는 복잡한 구조를 버리고 연산에 특화된 장치로서 그래픽처리를 위해 고안되었으며 단순한 연산들을 병렬로 고속처리를 할 수 있도록 한다. GPGPU : 그래픽처리만 하는 GPU와 달리 병렬로 연산기능까지 수행하게 해주는 GPU 위와 같은 개념이 나오면서 C언어 또는 C++언어로 병..

개발/Linux

wget 명령어

wget : 웹에서 파일 다운로드를 도와주는 명령어 웹에서 파일을 다운로드한다. 익명 FTP를 통해 파일을 다운로드한다. '-m' 옵션으로 미러링을 설정한다. 이를 이용해 모든 웹사이트이 파일을 다운로드할 수 있다. 대량의 파일을 다운로드할 때 '-b' 옵션을 사용해서 다운로드 과정을 백그라운드로 실행할 수 있다. wget의 버전을 확인하기 위해 wget -version을 입력하면 된다. 이외에도 많은 기능들이 있는데 man wget을 사용하면 자세한 기능들을 알 수 있다.

개발/AWS

Amazon Machine Image(AMI)

AMI는 EC2 안에 가상 머신을 생성하기 위해 사용되는 특수한 유형의 가상 어플라이언스이다. AMI는 인스턴스를 시작하는 데 필요한 정보를 제공하는 AWS에서 지원되고 유지 관리되는 이미지이다. 인스턴스를 시작할 때 AMI를 지정해야 한다. 동일한 구성의 인스턴스가 여러 개 필요할 때는 한 AMI에서 여러 인스턴스를 시작할 수 있다. 서로 다른 구성의 인스턴스가 필요할 때는 다양한 AMI를 사용하여 인스턴스를 시작할 수 있다. AMI를 생성 및 등록한 다음 새 인스턴스를 시작하기 위해 그것을 사용할 수 있다. AMI를 동일한 AWS 리전 또는 다른 AWS 리전으로 복사할 수 있다. 더 이상 필요 없는 AMI는 등록 취소할 수 있다.

CS/컴파일러

2. Formal Language

Natural Language : 한국어, 영어 등 (유연성 있음) Formal Language : C언어, 자바 등 (규칙을 다 지켜야 소통 가능) Well-defind language is defined by a set of sentences. 알파벳 : 심볼을 가지고 있는 유한집합 String : 심볼들을 이어붙인 것 Length of string : 스트링이 가지고 있는 심볼의 개수 empty string : 길이가 0인 스트링 그 외 수학적인 규칙들이 많다.

Spring

객체지향쿼리, JPQL

JPQL (Java Persistence Query Language) : 엔티티 객체를 조회하는 객체지향 쿼리다. JPQL은 SQL을 추상화하여 특정 데이터베이스에 의존하지 않는다. 따라서, 데이터베이스 방언이 바뀌어도 상관없다. Criteria는 JPQL을 생성하는 빌더 클래스이다. 문자열로 JPQL을 작성하면 런타임이 되어야 문법 오류를 알 수 있지만, Criteria는 자바 코드 기반이기 때문에 안전하게 JPQL을 작성할 수 있다. // Criteria 사용 시작 CriteriaBuilder cb = eb.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Member.class); // 루트 클래스 (조회를 시작할 클래스) Root m = qu..

CS/컴파일러

1. Overview

컴파일러 : 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스 컴파일러와 인터프리터의 차이는 컴파일러는 실행 전에 모든 코드를 번역하여 실행파일을 따로 만든다. 번역 속도는 느리지만, 결과적으로 실행 속도는 빠르다. 인터프리터는 한 줄씩 번역한다. 번역 속도는 빠르지만, 결과적으로 실행 속도는 느리다. 어셈블러는 기계어로 코딩을 하는 것인데, 사람이 매번 이럴 수는 없으므로 소스코드로 작성한다. 그리고 이것을 컴파일러가 변환해준다. 컴파일러는 크게 어휘 분석과 구문 및 의미 분석, 코드 생성 단계로 나뉜다. 컴파일러에 따라서는 선택적으로 구문 및 의미 분석과 코드 생성 단계 사이에 중간 코드를 생성하거나 코드를 최적화하기도 한다. 어휘 분석기(Lexical anal..

객체지향(Java)

Java 자바 기술면접 질문 정리 (1)

자바 컴파일 과정 1. 개발자가 java 코드 생성 2. build 3. javac를 통해 .java 파일을 .class 파일로 바꾼다. 4. class loader를 통해 JVM(Java Virtual Machine) 내로 로드된다. 5. 실행엔진을 통해 컴퓨터가 읽을 수 있는 기계어로 해석되어 Runtime Data Area에 배치된다. 컴파일러 vs 인터프리터 공통점은 둘 다 사람이 읽을 수 있는 프로그래밍 언어를 컴퓨터가 읽을 수 있는 기계어로 변환해준다. 차이점은 컴파일러는 한꺼번에 컴파일을 하기 때문에 컴파일 시간은 오래 걸리지만 실행 단계에서 이미 기계어로 변환된 파일을 실행하면 되므로 실행 속도는 빠르다. 하지만 컴파일 후에 에러를 알려주기 때문에 에러 수정이 비교적 어렵다. 인터프리터는 ..

화서동 병아리
'분류 전체보기' 카테고리의 글 목록 (3 Page)