[CSS] CSS, SASS, SCSS 차이점, 사용방법
[Python] list comprehension에 대한 즐거운 이해
# List Comprehension을 적용하지 않은 경우
size = 10
arr = [0] * size
for i in range(len(size)):
arr[i] = i * 2
# 위를 아래처럼 변경 할 수 있다
size = 10
arr = [i * 2 for i in range(size)] # 배열 선언과 원소 할당을 동시에
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# if문도 가능
size = 10
arr = [n for n in range(1, 11) if n % 2 == 0]
[2, 4, 6, 8, 10]
# 다중 if문도 가능
arr = [n for n in range(1, 31) if n % 2 == 0 if n % 3 == 0]
# SyntaxError: invalid syntax
# and를 적으면 문법 에러
arr = [n for n in range(1, 31) if n % 2 == 0 and if n % 3 == 0]
# 한 if문 내에서 OR 연산자로 묶어주는건 가능
arr = [n for n in range(1, 16) if n % 2 == 0 or n % 3 == 0]
# 문자열도 가능
word = '가나다'
print([c * 2 for c in word])
['가가', '나나', '다다']java의 경우 API에서는 public static void main (String[] args) 단 한개만 엔트리 포인트로 정의했기 때문에, 오버로딩 된 다른 형태의 main함수는 엔트리 포인트로 동작하지 않는다.
Exception을 catch하기만 하는건 의미가 없다.
catch 구문 안에 log.error(e); 추가
try {
doSomething();
} catch(IOException e) {
log.error(e);
goto RETRY;
}
Log Rotation
꼬리재귀로 해결한다.
JAVA, Python에는 꼬리재귀가 없다.
프로세스, 스레드 개념
공유 메모리 개념
파이프, 소켓, 메세지 큐, 메모리 맵, RPC