Convolution 연산을 Python NumPy로 구현해보자! (단순 반복문을 이용한 구현, im2col을 이용한 구현)
Convolution 연산은 CNN을 포함한 다양한 딥러닝 네트워크에서 활용되는 중요한 연산이다. PyTorch와 같은 딥러닝 프레임워크에서는 Convolution 연산을 기본적으로 제공하고 있다. 이러한 Convolution 연산에 대해 더욱 자세히 이해하기 위하여 본 포스팅에서는 Convolution 연산을 Python NumPy만을 이용해 구현해보도록 하겠다.
예를 들어 입력 차원이 (배치 크기, 채널 크기, 높이, 너비) = (2, 3, 5, 5)인 예시를 확인해 보자. 이때 3 X 3짜리 커널을 3개 사용하여 stride = 2, padding = 0 설정으로 Convolution 연산을 수행하면 그 결과는 다음과 같다. 수식으로 표현하자면 출력 차원은 (배치 크기, 커널 개수, out_h, out_w) = (2, 3, 2, 2)가 된다.
※ 단순 반복문을 이용한 구현 ※
이러한 Convolution 연산을 어떻게 구현할 수 있을까? 가장 기본적인 방법은 바로 반복문을 이용하는 것이다. 기본적으로 출력 높이(out_h)와 출력 너비(out_w)는 다음의 공식을 이용해 구현할 수 있다.
out_h = (h + 2 * padding - filter_h) / stride + 1
out_w = (w + 2 * padding - filter_w) / stride + 1
또한, 일반적으로 패딩(padding)은 입력 데이터의 높이와 너비 차원에 대해서만 수행한다. 이를 위해 np.pad() 메서드를 사용할 수 있다. 아래 코드를 보면 높이와 너비 차원에 대해서만 패딩을 넣는 것을 알 수 있다.
결과적으로 출력 텐서(out)를 만든 뒤에 각각의 원소마다 Convolution 연산을 수행한 결과 값을 채워 넣는 것을 알 수 있다. NumPy에서 단순히 두 행렬에 대하여 곱셈 연산을 수행하면, 원소 단위(element-wise)로 곱셈 연산이 수행된다. 그래서 Convolution 연산을 다음과 같이 구현할 수 있다.
import numpy as np
def conv(X, filters, stride=1, pad=0):
n, c, h, w = X.shape
n_f, _, filter_h, filter_w = filters.shape
out_h = (h + 2 * pad - filter_h) // stride + 1
out_w = (w + 2 * pad - filter_w) // stride + 1
# add padding to height and width.
in_X = np.pad(X, [(0, 0), (0, 0), (pad, pad), (pad, pad)], 'constant')
out = np.zeros((n, n_f, out_h, out_w))
for i in range(n): # for each image.
for c in range(n_f): # for each channel.
for h in range(out_h): # slide the filter vertically.
h_start = h * stride
h_end = h_start + filter_h
for w in range(out_w): # slide the filter horizontally.
w_start = w * stride
w_end = w_start + filter_w
# Element-wise multiplication.
out[i, c, h, w] = np.sum(in_X[i, :, h_start:h_end, w_start:w_end] * filters[c])
return out
이제 앞서 다루었던 그림을 그대로 코드로 옮겨 결과를 확인해 보자.
X = np.asarray([
# image 1
[
[[1, 2, 9, 2, 7],
[5, 0, 3, 1, 8],
[4, 1, 3, 0, 6],
[2, 5, 2, 9, 5],
[6, 5, 1, 3, 2]],
[[4, 5, 7, 0, 8],
[5, 8, 5, 3, 5],
[4, 2, 1, 6, 5],
[7, 3, 2, 1, 0],
[6, 1, 2, 2, 6]],
[[3, 7, 4, 5, 0],
[5, 4, 6, 8, 9],
[6, 1, 9, 1, 6],
[9, 3, 0, 2, 4],
[1, 2, 5, 5, 2]]
],
# image 2
[
[[7, 2, 1, 4, 2],
[5, 4, 6, 5, 0],
[1, 2, 4, 2, 8],
[5, 9, 0, 5, 1],
[7, 6, 2, 4, 6]],
[[5, 4, 2, 5, 7],
[6, 1, 4, 0, 5],
[8, 9, 4, 7, 6],
[4, 5, 5, 6, 7],
[1, 2, 7, 4, 1]],
[[7, 4, 8, 9, 7],
[5, 5, 8, 1, 4],
[3, 2, 2, 5, 2],
[1, 0, 3, 7, 6],
[4, 5, 4, 5, 5]]
]
])
print('Images:', X.shape)
filters = np.asarray([
# kernel 1
[
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]],
[[3, 1, 3],
[1, 3, 1],
[3, 1, 3]],
[[1, 2, 1],
[2, 2, 2],
[1, 2, 1]]
],
# kernel 2
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
],
# kernel 3
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
]
])
print('Filters:', filters.shape)
out = conv(X, filters, stride=2, pad=0)
print('Output:', out.shape)
print(out)
실행 결과는 다음과 같다. 그림에서의 결과와 동일한 것을 확인할 수 있다.
Images: (2, 3, 5, 5)
Filters: (3, 3, 3, 3)
Output: (2, 3, 2, 2)
[[[[174. 191.]
[130. 122.]]
[[197. 244.]
[165. 159.]]
[[197. 244.]
[165. 159.]]]
[[[168. 171.]
[153. 185.]]
[[188. 178.]
[168. 200.]]
[[188. 178.]
[168. 200.]]]]
※ im2col을 이용한 구현 ※
앞서 단순 반복문을 이용해 Convolution 연산을 구현해 보았다. Convolution 연산을 수행할 때 단순히 반복문(for loops)을 이용하는 경우, 행렬 곱을 제대로 활용하지 못한다는 점에서 속도가 느리다. 따라서 메모리를 조금 더 많이 사용하여, 속도를 비약적으로 개선할 수 있는 방법으로 im2col 연산을 활용하는 방법이 있다.
다음과 같이 한 배치에 두 장의 이미지가 존재하여 마찬가지로 입력 차원이 (배치 크기, 채널 크기, 높이, 너비) = (2, 3, 5, 5)인 예시를 확인해 보자. 이러한 입력이 들어왔을 때, 이것을 행렬(matrix)로 형태를 변형하는 것이 im2col 연산이다. im2col 연산을 수행한 결과를 확인해 보자. (8, 27) 차원을 갖는 행렬이 생성되었다. 정확히는 (이미지 개수 X out_h X out_w, 입력 채널 개수 X kernel_h X kernel_w)의 차원을 갖는 행렬이 된다.
im2col 연산은 다음과 같이 구현할 수 있다.
import numpy as np
def im2col(X, filters, stride=1, pad=0):
n, c, h, w = X.shape
n_f, _, filter_h, filter_w = filters.shape
out_h = (h + 2 * pad - filter_h) // stride + 1
out_w = (w + 2 * pad - filter_w) // stride + 1
# add padding to height and width.
in_X = np.pad(X, [(0, 0), (0, 0), (pad, pad), (pad, pad)], 'constant')
out = np.zeros((n, c, filter_h, filter_w, out_h, out_w))
for h in range(filter_h):
h_end = h + stride * out_h
for w in range(filter_w):
w_end = w + stride * out_w
out[:, :, h, w, :, :] = in_X[:, :, h:h_end:stride, w:w_end:stride]
out = out.transpose(0, 4, 5, 1, 2, 3).reshape(n * out_h * out_w, -1)
return out
X = np.asarray([
# image 1
[
[[1, 2, 9, 2, 7],
[5, 0, 3, 1, 8],
[4, 1, 3, 0, 6],
[2, 5, 2, 9, 5],
[6, 5, 1, 3, 2]],
[[4, 5, 7, 0, 8],
[5, 8, 5, 3, 5],
[4, 2, 1, 6, 5],
[7, 3, 2, 1, 0],
[6, 1, 2, 2, 6]],
[[3, 7, 4, 5, 0],
[5, 4, 6, 8, 9],
[6, 1, 9, 1, 6],
[9, 3, 0, 2, 4],
[1, 2, 5, 5, 2]]
],
# image 2
[
[[7, 2, 1, 4, 2],
[5, 4, 6, 5, 0],
[1, 2, 4, 2, 8],
[5, 9, 0, 5, 1],
[7, 6, 2, 4, 6]],
[[5, 4, 2, 5, 7],
[6, 1, 4, 0, 5],
[8, 9, 4, 7, 6],
[4, 5, 5, 6, 7],
[1, 2, 7, 4, 1]],
[[7, 4, 8, 9, 7],
[5, 5, 8, 1, 4],
[3, 2, 2, 5, 2],
[1, 0, 3, 7, 6],
[4, 5, 4, 5, 5]]
]
])
print('Images:', X.shape)
filters = np.asarray([
# kernel 1
[
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]],
[[3, 1, 3],
[1, 3, 1],
[3, 1, 3]],
[[1, 2, 1],
[2, 2, 2],
[1, 2, 1]]
],
# kernel 2
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
],
# kernel 3
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
]
])
print('Filters:', filters.shape)
out = im2col(X, filters, stride=2, pad=0)
print('Output:', out.shape)
print(out)
im2col 연산 예제 실행 결과는 다음과 같다.
Images: (2, 3, 5, 5)
Filters: (3, 3, 3, 3)
Output: (8, 27)
[[1. 2. 9. 5. 0. 3. 4. 1. 3. 4. 5. 7. 5. 8. 5. 4. 2. 1. 3. 7. 4. 5. 4. 6.
6. 1. 9.]
[9. 2. 7. 3. 1. 8. 3. 0. 6. 7. 0. 8. 5. 3. 5. 1. 6. 5. 4. 5. 0. 6. 8. 9.
9. 1. 6.]
[4. 1. 3. 2. 5. 2. 6. 5. 1. 4. 2. 1. 7. 3. 2. 6. 1. 2. 6. 1. 9. 9. 3. 0.
1. 2. 5.]
[3. 0. 6. 2. 9. 5. 1. 3. 2. 1. 6. 5. 2. 1. 0. 2. 2. 6. 9. 1. 6. 0. 2. 4.
5. 5. 2.]
[7. 2. 1. 5. 4. 6. 1. 2. 4. 5. 4. 2. 6. 1. 4. 8. 9. 4. 7. 4. 8. 5. 5. 8.
3. 2. 2.]
[1. 4. 2. 6. 5. 0. 4. 2. 8. 2. 5. 7. 4. 0. 5. 4. 7. 6. 8. 9. 7. 8. 1. 4.
2. 5. 2.]
[1. 2. 4. 5. 9. 0. 7. 6. 2. 8. 9. 4. 4. 5. 5. 1. 2. 7. 3. 2. 2. 1. 0. 3.
4. 5. 4.]
[4. 2. 8. 0. 5. 1. 2. 4. 6. 4. 7. 6. 5. 6. 7. 7. 4. 1. 2. 5. 2. 3. 7. 6.
4. 5. 5.]]
이렇게 구해진 im2col 결과 행렬(matrix)과 연산하기 위해 다음과 같이 커널(kernel) 또한 flatten을 진행하면 된다. 결과적으로 두 행렬(matrix)에 대하여 행렬 곱(matrix multiplication)을 수행하여 결과를 구할 수 있다.
따라서 최종적인 코드는 다음과 같다.
import numpy as np
def im2col(X, filters, stride=1, pad=0):
n, c, h, w = X.shape
n_f, _, filter_h, filter_w = filters.shape
out_h = (h + 2 * pad - filter_h) // stride + 1
out_w = (w + 2 * pad - filter_w) // stride + 1
# add padding to height and width.
in_X = np.pad(X, [(0, 0), (0, 0), (pad, pad), (pad, pad)], 'constant')
out = np.zeros((n, c, filter_h, filter_w, out_h, out_w))
for h in range(filter_h):
h_end = h + stride * out_h
for w in range(filter_w):
w_end = w + stride * out_w
out[:, :, h, w, :, :] = in_X[:, :, h:h_end:stride, w:w_end:stride]
out = out.transpose(0, 4, 5, 1, 2, 3).reshape(n * out_h * out_w, -1)
return out
X = np.asarray([
# image 1
[
[[1, 2, 9, 2, 7],
[5, 0, 3, 1, 8],
[4, 1, 3, 0, 6],
[2, 5, 2, 9, 5],
[6, 5, 1, 3, 2]],
[[4, 5, 7, 0, 8],
[5, 8, 5, 3, 5],
[4, 2, 1, 6, 5],
[7, 3, 2, 1, 0],
[6, 1, 2, 2, 6]],
[[3, 7, 4, 5, 0],
[5, 4, 6, 8, 9],
[6, 1, 9, 1, 6],
[9, 3, 0, 2, 4],
[1, 2, 5, 5, 2]]
],
# image 2
[
[[7, 2, 1, 4, 2],
[5, 4, 6, 5, 0],
[1, 2, 4, 2, 8],
[5, 9, 0, 5, 1],
[7, 6, 2, 4, 6]],
[[5, 4, 2, 5, 7],
[6, 1, 4, 0, 5],
[8, 9, 4, 7, 6],
[4, 5, 5, 6, 7],
[1, 2, 7, 4, 1]],
[[7, 4, 8, 9, 7],
[5, 5, 8, 1, 4],
[3, 2, 2, 5, 2],
[1, 0, 3, 7, 6],
[4, 5, 4, 5, 5]]
]
])
print('Images:', X.shape)
filters = np.asarray([
# kernel 1
[
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]],
[[3, 1, 3],
[1, 3, 1],
[3, 1, 3]],
[[1, 2, 1],
[2, 2, 2],
[1, 2, 1]]
],
# kernel 2
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
],
# kernel 3
[
[[5, 1, 5],
[2, 1, 2],
[5, 1, 5]],
[[1, 1, 1],
[1, 1, 1],
[1, 1, 1]],
[[2, 0, 2],
[0, 2, 0],
[2, 0, 2]],
]
])
print('Filters:', filters.shape)
stride = 2
pad = 0
X_col = im2col(X, filters, stride=stride, pad=pad)
n, c, h, w = X.shape
n_f, _, filter_h, filter_w = filters.shape
out_h = (h + 2 * pad - filter_h) // stride + 1
out_w = (w + 2 * pad - filter_w) // stride + 1
out = np.matmul(X_col, filters.reshape(n_f, -1).T)
out = out.reshape(n, out_h, out_w, n_f)
out = out.transpose(0, 3, 1, 2)
print('Output:', out.shape)
print(out)
실행 결과는 다음과 같으며, 앞서 반복문을 이용한 구현 결과와 동일하다.
Images: (2, 3, 5, 5)
Filters: (3, 3, 3, 3)
Output: (2, 3, 2, 2)
[[[[174. 191.]
[130. 122.]]
[[197. 244.]
[165. 159.]]
[[197. 244.]
[165. 159.]]]
[[[168. 171.]
[153. 185.]]
[[188. 178.]
[168. 200.]]
[[188. 178.]
[168. 200.]]]]
'기타' 카테고리의 다른 글
크롬(Chrome) 브라우저 시크릿 모드 사용 방법 (+ 간단한 원리 설명) (0) | 2021.08.28 |
---|---|
인터넷 속도(다운로드, 업로드, Ping) 간단 측정 방법! Feat. NIA 사이트 (0) | 2021.08.27 |
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법 (0) | 2021.08.27 |
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
크롬(Chrome) 브라우저 시크릿 모드 사용 방법 (+ 간단한 원리 설명)
구글 크롬(Chrome) 브라우저는 시크릿 모드를 제공합니다. 필자는 공용 PC를 사용하거나, 집에서 컴퓨터를 할 때에도 PC에 방문 기록을 남기지 않고자 할 때는 시크릿 모드를 사용합니다. 시크릿 모드는 크롬(Chrome) 브라우저를 실행한 뒤에 [새 시크릿 창] 버튼을 클릭하거나 [Ctrl + Shift + N]을 눌러서 간단하게 열 수 있습니다.
시크릿 모드가 실행되면 다음과 같은 화면이 등장합니다. 스크릿 모드를 이용하면 방문 기록, 쿠키 및 사이트 데이터, 양식에 입력한 정보가 저장되지 않습니다. 다시 말해 이러한 정보가 현재 사용하고 있는 기기(컴퓨터)에 저장되지 않습니다. 그래서 나중에 내 컴퓨터를 다른 사람이 사용하더라도, 내가 어디에 접속했는지 알 수 없는 것입니다. (참고로 일반적인 경우에 자기 자신도 자기가 어디에 접속했었는지 알 수 없습니다. 머릿속으로 기억하고 있으면 좋지만, 기록상으로는 남기 때문에, 가끔 기억이 안 나서 낭패를 보는 일이 생깁니다.)
아무튼 시크릿 모드는 굉장히 유용합니다. 예를 들어 필자가 누나의 생일 선물을 사주려고 인터넷에 검색할 때 시크릿 모드를 사용하게 되면, 같은 컴퓨터를 사용하는 누나가 검색 기록을 알지 못하게 되는 것입니다. 다만, 시크릿 모드를 사용하더라도 파일을 다운로드하거나 북마크를 추가했다면 이러한 정보는 저장되므로, 시크릿 모드일 때 다운로드한 파일이 기록된다는 점을 기억하세요.
※ 참고사항 ※
참고로 시크릿 모드는 [닫은 탭 다시 열기] 기능을 제공하지 않습니다. 따라서 실수로 탭을 닫았을 때 혹은 이전에 방문했던 웹 페이지에 다시 방문하고 싶을 때, 기록이 남아 있지 않아서 낭패를 보는 경우가 발생할 수 있습니다. 그래서 시크릿 모드로 웹 페이지를 방문하다가, 좋은 정보가 포함된 웹 페이지를 찾았다면 그 링크는 별도로 기록할 필요가 있습니다.
또한 내 컴퓨터에 정보가 남지 않는 것이지, 실제로 웹 사이트에 접속했을 때, 웹 사이트의 관리자는 여러분의 방문 기록을 알 수 있습니다. 예를 들어 우리가 네이버(Naver)에 접속해 특정한 웹 페이지에 접속했다고 가정해 봅시다. 그러면 여러분의 컴퓨터에서 보내는 패킷은 네이버 서버에 도달하게 됩니다. 당연히 네이버 입장에서는 여러분의 IP나 패킷 정보를 처리하게 될 것입니다. 그렇기에 웹 사이트 관리자, 인터넷 서비스 제공업체(ISP), 네트워크 관리자의 입장에서는 방문 기록을 확인할 가능성이 있다고 보시면 됩니다.
그래서 여러분의 IP 정보를 포함해 완전히 여러분의 신원을 숨기고 싶다면, 시크릿 모드를 넘어서 VPN을 이용해 보시면 좋습니다. 물론 VPN을 이용한다고 하더라도, 여러분이 특정 웹 사이트에 로그인을 하는 등으로 정보를 노출한다면, 이 또한 활동 내역이 남게 될 여지가 있다는 점에 유의하세요. 실제로 웹 사이트 관리자 입장에서는 접속자가 로그인을 했을 때에만 중요한 정보를 노출하도록 하여, 어떤 사람이 어떤 기능을 이용했는지 처리하는 경우가 많습니다.
'기타' 카테고리의 다른 글
Convolution 연산을 Python NumPy로 구현해보자! (단순 반복문을 이용한 구현, im2col을 이용한 구현) (0) | 2021.08.28 |
---|---|
인터넷 속도(다운로드, 업로드, Ping) 간단 측정 방법! Feat. NIA 사이트 (0) | 2021.08.27 |
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법 (0) | 2021.08.27 |
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
인터넷 속도(다운로드, 업로드, Ping) 간단 측정 방법! Feat. NIA 사이트
다양한 이유로 인터넷 속도를 측정해야 할 때가 있다. 예를 들어 인터넷 방송을 하고 싶다면, 업로드 속도가 특정 속도 이상이 나와야 한다. 따라서 자신의 인터넷 속도를 측정하는 방법에 대해 알고 있으면 좋다. 이때 간단하게 사용할 수 있는 서비스로는 NIA에서 제공하는 [인터넷 속도 측정] 서비스가 있다. 아주 간단하게 사용해 볼 수 있다.
▶ NIA 인터넷 속도 측정: https://speed.nia.or.kr/index.asp
웹 사이트에 접속한 뒤에는 필요한 프로그램을 다운로드한다.
이후에 다음과 같이 기본 설정 그대로 설치를 진행하면 된다.
필자의 경우 전체 설치 과정이 약 1분 내외의 시간을 요구했다.
결과적으로 다음과 같이 측정을 진행할 수 있다. 필자의 경우 SK의 기가 라이트(500Mbps) 인터넷 서비스를 사용하고 있다. 따라서 해당 정보를 기입한 뒤에 [측정하기] 버튼을 눌렀다.
결과적으로 다음과 같이 다운로드/업로드 속도 각각 500Mbps 정도의 속도가 나오는 것을 알 수 있다.
'기타' 카테고리의 다른 글
Convolution 연산을 Python NumPy로 구현해보자! (단순 반복문을 이용한 구현, im2col을 이용한 구현) (0) | 2021.08.28 |
---|---|
크롬(Chrome) 브라우저 시크릿 모드 사용 방법 (+ 간단한 원리 설명) (0) | 2021.08.28 |
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법 (0) | 2021.08.27 |
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법
[기본 앱]을 검색하여 실행한다.
이후에 [웹 브라우저] 탭에서 원하는 브라우저를 선택한다. 필자는 [Chrome]을 선택했다.
'기타' 카테고리의 다른 글
크롬(Chrome) 브라우저 시크릿 모드 사용 방법 (+ 간단한 원리 설명) (0) | 2021.08.28 |
---|---|
인터넷 속도(다운로드, 업로드, Ping) 간단 측정 방법! Feat. NIA 사이트 (0) | 2021.08.27 |
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존) (0) | 2021.08.19 |
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법
윈도우(Windows) 운영체제의 이미지 파일(ISO 파일)을 갖고 있다면, Rufus를 이용해 USB 드라이브에 구울 수 있다. Rufus 프로그램은 공식 웹 사이트에 접속하여 다운로드할 수 있다. 공식 웹 사이트는 주소는 다음과 같다.
▶ Rufus: https://rufus.ie/
접속 이후에는 [Rufus 3.15] 다운로드 버튼을 눌러 다운로드를 진행한다.
다운로드 이후에는 Rufus 프로그램을 실행한다. 이후에 다음과 같이 Windows 운영체제 ISO 파일을 [선택]한다. 이후에 파티션 방식 및 UEFI 여부를 선택할 수 있는데, 필자는 2021년 기준 최신 메인보드를 이용하고 있기 때문에, 해당 설정 그대로 이미지를 구웠다.
USB에 이미지를 완전히 구운 뒤에는 다음과 같이 [완료] 메시지가 출력된다.
이렇게 구워진 USB를 새로운 컴퓨터에 꽂은 뒤에 윈도우(Windows)로 부팅할 수 있다. 최신 Windows 운영체제는 기본적으로 Microsoft 계정을 필요로 한다는 점을 기억하자. 필자는 학교에서 제공하는 Microsoft 계정을 이용하여 로그인을 진행했고, 정상적으로 윈도우 운영체제를 사용할 수 있었다.
'기타' 카테고리의 다른 글
인터넷 속도(다운로드, 업로드, Ping) 간단 측정 방법! Feat. NIA 사이트 (0) | 2021.08.27 |
---|---|
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법 (0) | 2021.08.27 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존) (0) | 2021.08.19 |
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법! (0) | 2021.08.18 |
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개
발라볼카(Balabolka)는 대표적인 TTS(Text-to-Speech) 프로그램 중 하나다. 이름에서부터 알 수 있듯이 말 그대로 텍스트(text)를 음성(speech)으로 변환해주는 소프트웨어다. 이러한 Balabolka는 프리웨어(freeware)이므로 무료로 이용할 수 있다는 점이 장점이다. Balabolka는 다음의 경로에 접속하여 다운로드할 수 있다.
▶ Balabolka 다운로드: http://www.cross-plus-a.com/kr/balabolka.htm
웹 사이트에 접속한 뒤에 [Balabolka 다운로드] 버튼을 눌러 프로그램을 다운로드할 수 있다.
다운로드 이후에는 압축을 해제한다.
그리고 설치 프로그램인 setup.exe 파일을 실행하여 설치를 진행하면 된다. 먼저 언어(language)를 선택한 뒤에, 기본적인 내용 그대로 [Next]를 눌러 설치 과정을 진행하여도 큰 무리가 없다.
필자는 기본적인 설정 그대로 [Next]를 눌러 설치를 진행했다.
설치가 완료된 이후에는 [Finish] 버튼을 누르면 된다.
발라볼카(Balabolka)를 실행한 뒤에는 다음과 같이 텍스트를 입력하고, [재생] 버튼을 눌러 음성을 확인할 수 있다. 참고로 Rate는 음성의 속도, Pitch는 목소리의 높낮이, Volume은 목소리의 크기에 해당한다.
목소리를 오디오 파일로 저장하고 싶을 때는 다음과 같은 버튼을 누르면 된다.
'기타' 카테고리의 다른 글
윈도우(Windows) 10에서 기본 브라우저 변경하는 방법 (0) | 2021.08.27 |
---|---|
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존) (0) | 2021.08.19 |
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법! (0) | 2021.08.18 |
한국투자증권 모바일 앱으로 해외 주식 거래 하는 방법 (해외 주식 거래 신청 방법) (0) | 2021.08.17 |
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존)
필자는 최근에 이사를 가서, 새로운 PC가 필요한 상황이다. 컴퓨터 견적을 내주는 사이트는 굉장히 다양하지만, 필자는 주로 ① 컴퓨존과 ② 다나와에서 검색해서 찾아보았다. 다나와 조립PC 메인 페이지는 다음과 같다.
▶ 다나와 조립PC 메인 페이지: http://shop.danawa.com/shopmain/
이후에 [하이엔드PC] - [고사양 게임용]에 들어가면 고성능 PC 견적을 확인할 수 있다.
가격대를 확인하면서 둘러보면 된다. 이때 평가와 후기가 많은 상품을 선택하여 확인할 수 있다.
이후에 다음과 같이 해당 제품의 [기본사양]을 확인할 수 있다. 여기에서 어떤 제품으로 구성되어 있는지 확인해 보는 것에만 목적을 두는 것이 좋다. 왜냐하면 이 제품 구성 그대로 사는 것도 가능하기는 하지만, 동일한 제품 구성을 더욱 저렴하게 살 수 있는 경우도 있기 때문이다. 그러니까 일단 확인만 해보자. 기본 구성은 다음과 같다고 한다.
※ 필자가 선택한 부품 ※
다음과 같이 상품명을 조금씩 바꾸어 보며, 기본적인 스펙을 구성해 보았다. (이는 단순히 기본 스펙만 결정한 것으로, 최종적으로는 상당수 부품을 다시 골랐다.) 참고로 이와 같이 상품을 직접 선택하여 구매하면 가격이 상당히 높게 형성될 수 있다. 그래서 필자의 경우, 이러한 제품 페이지에서 직접 구매하는 것을 추천하지는 않는다. 그래서 웬만하면 컴퓨존이나 다나와에서 부품을 개별적으로 검색하여 최종적인 최저가를 찾은 뒤에, 해당 최저 가격으로 구매하는 것이 좋다.
※ 필자의 최종 선택 ※
결과적으로 필자는 다음과 같이 부품을 구성했다.
▶ CPU = AMD 라이젠9-4세대 5900X: 현 시점에서 가격은 60만 원이 넘지만, CPU 중에서는 베이스라인이 되는 꽤 괜찮은 스펙의 제품이다.
▶ 메인보드 = TUF GAMING X570-PLUS: 가격은 약 27만 원 정도로, M.2 소켓이 2개 있다. 무난한 스펙의 메인보드다.
▶ 메인 메모리 = 삼성전자 DDR4-3200 (32GB): 가격은 약 18만 원 정도로, 32GB를 2개 설치하면 총 36만 원 정도의 가격으로 총 64GB만큼의 메인 메모리를 확보할 수 있다.
▶ 그래픽 카드 = GeForce RTX 3080 Ti 12GB: 가격은 약 218만 원 정도로, 고사양 게임이나 영상 편집 작업에서 GPU 작업이 필요하다면 무난하게 소화할 수 있다.
▶ SSD = 970 EVO Plus series 2TB M.2 NVMe 2TB MZ-V7S2T0BW: 가격은 약 43만 원 정도로, 충분히 많은 프로그램을 설치하기 위해서는 2TB 정도의 용량이 필요하다는 생각이 들었다.
▶ 파워 = Classic II 1050W 80PLUS GOLD 230V EU 풀모듈러: 가격은 약 18만 원 정도로, 무난한 파워 제품이다.
▶ 하드(HDD) = Western Digital WD BLUE 5400/256M (WD40EZAZ, 4TB): 가격은 약 11만 원 정도로, 별도로 저장할 필요가 있는 데이터에 대하여 저장할 수 있도록 4TB 정도의 큰 용량으로 준비했다.
▶ 쿨러 = 쿨러마스터 MasterLiquid ML360L V2 ARGB: 가격은 15만 원 정도로, 다른 사람들이 많이 사용하는 제품인 것 같아서 이를 구매했다.
▶ 모니터 = LG UHD 모니터 32UN650: 가격은 약 60만 원 정도로, 해상도는 3840 X 2160 (4K UHD)이며, 리뷰가 좋은 제품이라는 점에서 이를 구매했다.
▶ 키보드 = [COX] 유선 무접점 키보드, Empress (엠프리스) RGB PBT, 35G: 가격은 약 16만 원 정도로, 필자는 키압이 가벼운 것을 선호하기 때문에 35g 정도의 가벼운 키압의 키보드를 선택했다.
▶ 마우스 = 로지텍 G102 LIGHTSYNC: 가격은 2만 원 정도로, 대충 저렴한 것을 선택했다.
▶ 케이스 = darkFlash DLX21 RGB MESH 강화유리: 가격은 약 9만 원 정도로, 많이 사용되는 모델이라서 선택했다.
▶ 마우스 패드 = 펠로우즈 플러쉬터치 마우스패드: 가격은 약 1만 원 정도로, 개인적으로 손목이 불편해서 손목 보호대가 포함된 마우스 패드를 선택했다.
※ 최종 결제 ※
▶ 다나와 PC견적 내보기 (링크): CPU, 메인보드, 그래픽카드 등 부품을 하나씩 선택할 수 있다.
▶ 컴퓨존 온라인 견적 내보기 (링크): 다나와 사이트와 마찬가지로 부품을 하나씩 선택할 수 있다.
이와 같이 모든 컴퓨터 부품을 결정했다면, ① 컴퓨존과 ② 다나와에서 각각 부품을 검색한 뒤에, 최종적인 금액이 더 저렴한 것을 선택하는 것이 좋다. 또한 네이버 페이와 같은 추가 할인 혜택이 있는지 확인해 보는 것이 좋다. 필자는 결과적으로 컴퓨존에서 구매하기로 했고, 원하는 제품들을 모두 선택했더니 다음과 같이 나왔다.
이제 [사양검토요청] 버튼을 눌러 각 제품이 서로 호환이 되는지 확인할 수 있다.
다음과 같이 문의할 내용을 작성한 뒤에, [사양검토 요청하기] 버튼을 누르면 된다.
그러면 일정 시간이 지난 뒤에 사양검토에 대한 답변 메일이 날라 온다. 필자의 경우에는 "고객님 확인해 보았습니다. 선택하신 제품들간에 호환성 및 안전성에는 문제가 없습니다. 이정도 사양이면 말씀하신 용도로 사용시 문제없이 사용을 하실수 있습니다. 특별히 변경할 제품은 없습니다."라고 답변받을 수 있었다.
실제로 제품을 주문하기 위해서는 각 제품을 [장바구니]에 담아야 하는데, 장바구니에 담을 수 없는 제품은 자동으로 제외된다. 예를 들어 10개 이상 구매해야 주문이 가능한 제품들이 있다. 그런 제품의 경우, 다른 제품으로 바꿀 필요가 있는지 확인해보도록 하자. 아무튼 결과적으로 다음과 같이 장바구니에 모든 물품이 담기도록 하면 된다. 또한 일부 제품의 경우 주문할 때 재고가 없어서 [품절] 상태일 수 있는데, 품절 상태라면 다른 유사한 제품을 대신 찾아서 장바구니를 다시 채우면 된다.
최종적으로 주문할 때는 조립과 관련한 내용을 선택할 수 있다. 필자는 다음과 같이 [일반 조립]을 선택했다.
결과적으로 [전체 주문하기] 버튼을 눌러 이와 같이 주문하면, 조립이 된 상태로 PC가 도착하게 된다. 필자는 컴퓨터의 가격대가 있다 보니, 가능한 퀵으로 안전하고 빠르게 받고 싶어서 [퀵서비스]를 선택했다.
또한 [무통장 입금]을 선택하고, 다음과 같이 현금영수증 신청을 선택하여 결제를 진행했다.
필자는 결제를 하자마자, 거의 5분 만에 바로 컴퓨존 담당자 분으로부터 연락을 받았다. 컴퓨존에서는 선택한 케이스와 메인보드가 완벽히 호환이 되지는 않기 때문에, 전면에 있는 C 타입 단자 하나를 사용하지 못하게 될 것 같다고 하셨다. 필자는 C 타입 단자 하나 정도는 사용하지 않아도 된다고 말씀을 드렸기에, 필자가 선택한 대로 조립을 해주시기로 하셨다. 그리고 무통장 입금으로 돈을 바로 보내면, 당일 오후에 바로 퀵으로 도착한다고 해주셨다. 그래서 필자는 현금영수증을 신청한 형태로, 무통장 입금으로 바로 돈을 보내서 결제를 마쳤다.
※ 참고사항 ※
필자는 컴퓨존에서 조립해 준 PC를 받기만 하고, 윈도우(Windows) 운영체제는 필자가 자체적으로 설치했다. 다만, 윈도우 운영체제 설치 후 부팅 단계에서 "CPU Fan Error!" 라는 오류가 발생했다. 메인보드 펌웨어 단에서 잡지 않고, 윈도우 OS 단에서 잡아준 오류라서 컴퓨존에서 놓친 것이라고 생각한다. 확인해 보니, CPU 팬(fan) 파워 케이블이 올바르지 않은 곳에 꽂혀 있었다. 그래서 필자가 CPU 팬 파워 케이블을 올바른 곳에 다시 꽂았더니, 정상적으로 OS 부팅이 진행되었다. 필자는 전공자이므로 어렵지 않게 문제를 해결했지만, 만약 컴퓨터를 잘 모르는 사람이었다면 많이 헤맸을지도 모른다. 그렇지만 개인적으로는 컴퓨존의 PC 조립 서비스에는 상당히 만족했다.
'기타' 카테고리의 다른 글
Rufus를 이용해 윈도우 10 OS 이미지를 USB에 굽는 방법 (0) | 2021.08.26 |
---|---|
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법! (0) | 2021.08.18 |
한국투자증권 모바일 앱으로 해외 주식 거래 하는 방법 (해외 주식 거래 신청 방법) (0) | 2021.08.17 |
내 집 장만 혹은 이사갈 때 사야 할 것/해야 할 일 목록 총정리 (0) | 2021.08.17 |
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법!
Instance Normalization은 Single Feature Map에 대하여 Normalization을 수행하는 기법이다. Instance Normalization은 Style Transfer나 StyleGAN과 같이 다양한 기술 및 아키텍처에서 활용되기 때문에, 알아 두면 상당히 좋다.
※ Batch Normalization ※
먼저 Batch Normalization에 대해 알아보자. 매우 많은 딥러닝 네트워크에서 활용되고 있는 정규화 레이어이며, Batch Normalization은 채널별로 현재 배치에 포함된 모든 이미지에 대하여 정규화를 수행한다. 그래서 각 채널별로 mean과 variance를 계산하는 것을 확인할 수 있다.
※ Instance Normalization ※
Instance Normalization은 개별적인 이미지에 대하여 채널별로 정규화를 수행한다는 점이 특징이다. Batch Normalization과 상당히 유사하지만, Instance Normalization은 개별적인 이미지 인스턴스(instance) 단위로 채널별로 정규화를 수행한다.
※ NumPy로 Instance Normalization 구현하기 ※
Numpy로 Instance Normalization을 구현해보자. 아래 코드를 보면, 각 이미지에 대하여 채널별로 variance와 mean을 계산하는 것을 알 수 있다.
import numpy as np
def calc_mean_std(feat, eps=1e-5):
n, c, h, w = feat.shape
feat_var = np.var(feat.reshape(n, c, -1), axis=2) + eps
feat_std = np.sqrt(feat_var).reshape(n, c, 1, 1)
feat_mean = np.mean(feat.reshape(n, c, -1), axis=2).reshape(n, c, 1, 1)
return feat_mean, feat_std
X = np.asarray([
# image 1
[
[[1, 2, 9, 2, 7],
[5, 0, 3, 1, 8],
[4, 1, 3, 0, 6],
[2, 5, 2, 9, 5],
[6, 5, 1, 3, 2]],
[[4, 5, 7, 0, 8],
[5, 8, 5, 3, 5],
[4, 2, 1, 6, 5],
[7, 3, 2, 1, 0],
[6, 1, 2, 2, 6]],
[[3, 7, 4, 5, 0],
[5, 4, 6, 8, 9],
[6, 1, 9, 1, 6],
[9, 3, 0, 2, 4],
[1, 2, 5, 5, 2]]
],
# image 2
[
[[7, 2, 1, 4, 2],
[5, 4, 6, 5, 0],
[1, 2, 4, 2, 8],
[5, 9, 0, 5, 1],
[7, 6, 2, 4, 6]],
[[5, 4, 2, 5, 7],
[6, 1, 4, 0, 5],
[8, 9, 4, 7, 6],
[4, 5, 5, 6, 7],
[1, 2, 7, 4, 1]],
[[7, 4, 8, 9, 7],
[5, 5, 8, 1, 4],
[3, 2, 2, 5, 2],
[1, 0, 3, 7, 6],
[4, 5, 4, 5, 5]]
]
])
print('Images:', X.shape)
# size = X.shape
feat_mean, feat_std = calc_mean_std(X)
print('Std:', feat_std.shape)
print('Mean:', feat_mean.shape)
out = (X - feat_mean) / feat_std
# We can get the same result by the below code.
# out = (X - np.broadcast_to(feat_mean, size)) / np.broadcast_to(feat_std, size)
print(out)
실행 결과는 다음과 같다.
Images: (2, 3, 5, 5)
Std: (2, 3, 1, 1)
Mean: (2, 3, 1, 1)
[[[[-1.01167305 -0.6341831 2.0082465 -0.6341831 1.25326661]
[ 0.49828672 -1.38916299 -0.25669316 -1.01167305 1.63075655]
[ 0.12079678 -1.01167305 -0.25669316 -1.38916299 0.87577667]
[-0.6341831 0.49828672 -0.6341831 2.0082465 0.49828672]
[ 0.87577667 0.49828672 -1.01167305 -0.25669316 -0.6341831 ]]
[[ 0.03335184 0.45024982 1.28404578 -1.63424008 1.70094375]
[ 0.45024982 1.70094375 0.45024982 -0.38354614 0.45024982]
[ 0.03335184 -0.80044412 -1.2173421 0.8671478 0.45024982]
[ 1.28404578 -0.38354614 -0.80044412 -1.2173421 -1.63424008]
[ 0.8671478 -1.2173421 -0.80044412 -0.80044412 0.8671478 ]]
[[-0.46796399 0.99442348 -0.10236712 0.26322975 -1.5647546 ]
[ 0.26322975 -0.10236712 0.62882661 1.36002035 1.72561722]
[ 0.62882661 -1.19915773 1.72561722 -1.19915773 0.62882661]
[ 1.72561722 -0.46796399 -1.5647546 -0.83356086 -0.10236712]
[-1.19915773 -0.83356086 0.26322975 0.26322975 -0.83356086]]]
[[[ 1.24161152 -0.77399159 -1.17711222 0.03224965 -0.77399159]
[ 0.43537027 0.03224965 0.83849089 0.43537027 -1.58023284]
[-1.17711222 -0.77399159 0.03224965 -0.77399159 1.64473214]
[ 0.43537027 2.04785276 -1.58023284 0.43537027 -1.17711222]
[ 1.24161152 0.83849089 -0.77399159 0.03224965 0.83849089]]
[[ 0.17149843 -0.25724764 -1.11473978 0.17149843 1.02899057]
[ 0.6002445 -1.54348585 -0.25724764 -1.97223192 0.17149843]
[ 1.45773663 1.8864827 -0.25724764 1.02899057 0.6002445 ]
[-0.25724764 0.17149843 0.17149843 0.6002445 1.02899057]
[-1.54348585 -1.11473978 1.02899057 -0.25724764 -1.54348585]]
[[ 1.07948803 -0.20561677 1.50785629 1.93622455 1.07948803]
[ 0.2227515 0.2227515 1.50785629 -1.49072156 -0.20561677]
[-0.63398503 -1.06235329 -1.06235329 0.2227515 -1.06235329]
[-1.49072156 -1.91908982 -0.63398503 1.07948803 0.65111976]
[-0.20561677 0.2227515 -0.20561677 0.2227515 0.2227515 ]]]]
※ PyTorch로 Instance Normalization 구현하기 ※
이어서 PyTorch로 Instance Normalization을 구현하는 방법은 다음과 같다. 위 코드와 같은 로직이다.
import numpy as np
import torch
def calc_mean_std(feat, eps=1e-5):
n, c, h, w = feat.shape
feat_var = feat.view(n, c, -1).var(dim=2) + eps
feat_std = feat_var.sqrt().view(n, c, 1, 1)
feat_mean = feat.view(n, c, -1).mean(dim=2).view(n, c, 1, 1)
return feat_mean, feat_std
X = torch.from_numpy(np.asarray([
# image 1
[
[[1, 2, 9, 2, 7],
[5, 0, 3, 1, 8],
[4, 1, 3, 0, 6],
[2, 5, 2, 9, 5],
[6, 5, 1, 3, 2]],
[[4, 5, 7, 0, 8],
[5, 8, 5, 3, 5],
[4, 2, 1, 6, 5],
[7, 3, 2, 1, 0],
[6, 1, 2, 2, 6]],
[[3, 7, 4, 5, 0],
[5, 4, 6, 8, 9],
[6, 1, 9, 1, 6],
[9, 3, 0, 2, 4],
[1, 2, 5, 5, 2]]
],
# image 2
[
[[7, 2, 1, 4, 2],
[5, 4, 6, 5, 0],
[1, 2, 4, 2, 8],
[5, 9, 0, 5, 1],
[7, 6, 2, 4, 6]],
[[5, 4, 2, 5, 7],
[6, 1, 4, 0, 5],
[8, 9, 4, 7, 6],
[4, 5, 5, 6, 7],
[1, 2, 7, 4, 1]],
[[7, 4, 8, 9, 7],
[5, 5, 8, 1, 4],
[3, 2, 2, 5, 2],
[1, 0, 3, 7, 6],
[4, 5, 4, 5, 5]]
]
], dtype=np.float64))
print('Images:', X.shape)
# size = X.shape
feat_mean, feat_std = calc_mean_std(X)
print('Mean:', feat_mean.shape)
print('Std:', feat_std.shape)
out = (X - feat_mean) / feat_std
# out = (X - feat_mean.expand(size)) / feat_std.expand(size)
print(out)
실행 결과는 다음과 같다.
Images: torch.Size([2, 3, 5, 5])
Mean: torch.Size([2, 3, 1, 1])
Std: torch.Size([2, 3, 1, 1])
tensor([[[[-0.9912, -0.6214, 1.9677, -0.6214, 1.2279],
[ 0.4882, -1.3611, -0.2515, -0.9912, 1.5978],
[ 0.1184, -0.9912, -0.2515, -1.3611, 0.8581],
[-0.6214, 0.4882, -0.6214, 1.9677, 0.4882],
[ 0.8581, 0.4882, -0.9912, -0.2515, -0.6214]],
[[ 0.0327, 0.4412, 1.2581, -1.6012, 1.6666],
[ 0.4412, 1.6666, 0.4412, -0.3758, 0.4412],
[ 0.0327, -0.7843, -1.1927, 0.8496, 0.4412],
[ 1.2581, -0.3758, -0.7843, -1.1927, -1.6012],
[ 0.8496, -1.1927, -0.7843, -0.7843, 0.8496]],
[[-0.4585, 0.9743, -0.1003, 0.2579, -1.5331],
[ 0.2579, -0.1003, 0.6161, 1.3325, 1.6908],
[ 0.6161, -1.1749, 1.6908, -1.1749, 0.6161],
[ 1.6908, -0.4585, -1.5331, -0.8167, -0.1003],
[-1.1749, -0.8167, 0.2579, 0.2579, -0.8167]]],
[[[ 1.2165, -0.7584, -1.1533, 0.0316, -0.7584],
[ 0.4266, 0.0316, 0.8215, 0.4266, -1.5483],
[-1.1533, -0.7584, 0.0316, -0.7584, 1.6115],
[ 0.4266, 2.0065, -1.5483, 0.4266, -1.1533],
[ 1.2165, 0.8215, -0.7584, 0.0316, 0.8215]],
[[ 0.1680, -0.2521, -1.0922, 0.1680, 1.0082],
[ 0.5881, -1.5123, -0.2521, -1.9324, 0.1680],
[ 1.4283, 1.8484, -0.2521, 1.0082, 0.5881],
[-0.2521, 0.1680, 0.1680, 0.5881, 1.0082],
[-1.5123, -1.0922, 1.0082, -0.2521, -1.5123]],
[[ 1.0577, -0.2015, 1.4774, 1.8971, 1.0577],
[ 0.2183, 0.2183, 1.4774, -1.4606, -0.2015],
[-0.6212, -1.0409, -1.0409, 0.2183, -1.0409],
[-1.4606, -1.8803, -0.6212, 1.0577, 0.6380],
[-0.2015, 0.2183, -0.2015, 0.2183, 0.2183]]]],
dtype=torch.float64)
'기타' 카테고리의 다른 글
텍스트를 음성(오디오)으로 바꾸어 주는 TTS 프로그램 발라볼카(Balabolka) 소개 (0) | 2021.08.26 |
---|---|
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존) (0) | 2021.08.19 |
한국투자증권 모바일 앱으로 해외 주식 거래 하는 방법 (해외 주식 거래 신청 방법) (0) | 2021.08.17 |
내 집 장만 혹은 이사갈 때 사야 할 것/해야 할 일 목록 총정리 (0) | 2021.08.17 |
딥러닝(Deep Learning) 학회에 논문을 제출한 뒤에, 리뷰(Review) 평가 분석 및 Rebuttal 쓰는 방법 (0) | 2021.08.13 |
한국투자증권 모바일 앱으로 해외 주식 거래 하는 방법 (해외 주식 거래 신청 방법)
※ 미국 주식시장 ※
미국 주식은 국내 주식보다 세금 부과를 더 많이 하는 편이다. 그럼에도 더 많은 수익률을 노리기 위하여 미국 주식을 구매하고자 하는 경우가 많다. 기본적으로 미국 주식시장의 개장 시간은 미국 동부 기준으로 주중 9시 30분 ~ 16시다. 한국 기준으로 저녁 23시 30분부터 그다음 날 새벽 6시까지 미국 주식시장에서 거래를 진행할 수 있다. 참고로 서머타임과 같은 제도가 있기 때문에, 실제로 거래가 가능한 정확한 시간을 확인할 필요가 있다. 본 포스팅에서는 한국투자증권 앱을 이용해 해외 주식을 사고파는 방법을 소개한다.
※ 한국투자증권 해외 주식 거래 신청 ※
한국투자증권 앱을 실행한 뒤에 [메뉴] - [계좌/서비스] - [거래서비스신청] - [해외주식거래신청]을 눌러 신청한다. 다음과 같이 [거래신청] 버튼을 누른다. 기본적으로 한국투자증권은 기존에 가지고 있던 계좌를 이용해 해외 주식도 구매할 수 있도록 해주므로, 매우 편리하다. 또한 해외증권 거래신청을 할 때는 [투자성향]을 확인한 뒤에 신청해야 한다. 만약 본인의 투자 성향에 대해 작성하지 않았다면, 투자 성향을 체크하는 절차를 거쳐야 한다.
결과적으로 모든 약관을 잘 읽어 본 뒤에 [동의]하고, [거래 신청]을 완료하면 된다. 최종적으로 다음과 같이 해외증권 거래 신청이 완료되는 것을 확인할 수 있다.
※ 한국투자증권 해외 ETP(ETF) 거래 신청 ※
또한 S&P 500과 같은 ETF에도 투자하고 싶다면, 해외 ETP(ETF) 거래 항목 또한 신청할 필요가 있다. 한국투자증권 앱을 실행한 뒤에 [메뉴] - [계좌/서비스] - [거래서비스신청] - [해외ETP(ETF)거래신청]을 눌러 신청을 진행한다.
이후에 다음과 같이 마찬가지로 [해외ETP거래신청] 탭에서도 투자성향을 확인하고, 약관에 동의한 뒤에 신청을 완료하면 된다. 단순히 요구하는 대로 [확인]만 진행하면 큰 어려움 없이 신청 가능하다.
※ 한국투자증권 통합증거금 신청 ※
또한 한국투자증권에서는 통합증거금을 신청할 수 있다. 통합증거금 서비스를 이용하면, 가지고 있는 원화로 바로 거래가 가능하기 때문에 편리하다. 다시 말해 내가 직접 환전하지 않아도 자동환전되기 때문에 편리한 것이다.
이후에 마찬가지로 통합증거금 신청에 대하여 설명서를 확인하고 [동의] 버튼을 누르면 된다.
※ 한국투자증권을 이용해 해외 주식 구매하는 방법 ※
위와 같이 ① 해외 주식 거래 신청, ② 해외 ETP(ETF) 거래 신청, ③ 통합증거금 신청을 모두 마쳤다면, 편하게 해외 주식을 구매할 수 있다. 해외 주식을 구매할 때는 검색 페이지로 이동한 뒤에 [해외 주식]을 선택하고 이름을 입력하면 된다. 예를 들어 Invesco QQQ Trust (ETF)를 사고 싶다면, [인베스코 QQQ]를 검색하여 해당 주식을 구매할 수 있다. 앞서 언급했듯이 미국 주식은 우리나라 시간으로 늦은 저녁 시간에 구매할 수 있기 때문에, 해당 시간에 거래하기 어렵다면 [예약주문]을 이용하면 된다. 단, 한국투자증권에서는 예약 주문이 체결된 이후에도 해당 예약 주문을 취소해야 할 필요가 있다고 한다.
필자가 실제로 구매를 해보았는데, 과정은 매우 간단했다. [주문] - [검색]으로 들어간 뒤에, [해외주식] 탭을 선택하고,자신이 원하는 외국 회사 이름을 검색한다. 필자는 QQQ를 검색했다. 검색 이후에는 구매할 주식 개수를 검색한 뒤에 [사자] 버튼을 누르고 구매하면 된다.
이후에 다음과 같이 주문 내역을 자세히 확인한 뒤에 [사자 주문 전송하기] 버튼을 눌러 구매를 진행할 수 있다. 나중에 자신이 구매한 해외 주식을 확인하고 싶을 때는 [잔고] 페이지로 이동한 뒤에 [해외] - [체결잔고] 탭으로 들어가면 된다.
'기타' 카테고리의 다른 글
500만 원으로 개발자용/영상 작업용/게임용 목적의 데스크탑 PC 견적을 내보았다. (다나와, 컴퓨존) (0) | 2021.08.19 |
---|---|
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법! (0) | 2021.08.18 |
내 집 장만 혹은 이사갈 때 사야 할 것/해야 할 일 목록 총정리 (0) | 2021.08.17 |
딥러닝(Deep Learning) 학회에 논문을 제출한 뒤에, 리뷰(Review) 평가 분석 및 Rebuttal 쓰는 방법 (0) | 2021.08.13 |
Python 코드를 활용하여 동전 던지기로 주사위 굴리기와 같은 결과 만들기(Rejection Sampling과 확률론) (0) | 2021.08.12 |
내 집 장만 혹은 이사갈 때 사야 할 것/해야 할 일 목록 총정리
※ 이 글은 필자가 최근에 내 집 장만을 마치고 이사를 가면서 고려했던 것들을 정리한 글이다. 필자의 주관적인 생각과 경험에 근거하여 작성했다. 따라서 잘못된 정보 및 부정확한 정보가 포함되어 있을 수 있으며, 참고용으로 보면 좋다.
0. 수리 및 입주 청소
다른 사람이 이미 살고 있던 집에 들어가는 경우 수리가 필요하다. 이때 수리 기사님께 직접 집을 보여드리면서, 수리 항목에 대해서 함께 확인해 보면 좋다. 필자의 경우 이전 집주인이 집을 양호하게 관리하고 있었기 때문에, 다른 부분은 괜찮았으나 화장실 수리에는 비교적 많은 돈을 투자했다. 결과적으로 화장실을 제외한 다른 항목은 정말 최소한의 비용으로 수리를 진행했다. 필자는 24평형(방 세 개) 집에 혼자 지내게 되었는데, 평수에 비하여 굉장히 저렴하게 부분 수리를 진행했다. 필자는 다음과 같이 수리 비용으로 530만 원을 썼다.
약 2주일 정도 정도 기다린 결과, 다음과 같이 생각보다 깔끔하게 수리가 완료되었다. 필자의 누나는 인테리어에 관심이 많아서, 누나가 도배 장판 및 타일 선택 과정에서 많은 도움을 주었다.
수리가 완료되었으면, 들어가기 전에 입주 청소를 진행해야 한다. 필자는 24평형 기준으로 나쁘지 않은 조건으로 입주 청소를 했다. 필자는 다음과 같이 50만 원이 넘는 돈을 지불했다. 청소 도중에 곰팡이가 피어 있는 부분 때문에 추가 요금이 2만 원 들었던 것으로 기억한다. (결과적으로 54만 원을 썼다.) 결과적으로 이와 같이 (수리 + 입주 청소)를 모두 마치고 나면 살만한 곳이 된다.
1. 기존에 쓰던 물던 정리하기
이사를 갈 때는 기존에 쓰던 물건을 정리해야 한다. 냉장고와 같이 큰 물건을 버릴 때는 대형 쓰레기 전용 스티커를 구매해서 부착한 뒤에 버려야 하고, 아직 쓸 수 있는 물건들은 새로운 집으로 택배로 부치면 된다. 필자는 자가용이 없기 때문에, 아는 사람에게 부탁해서 짐을 옮긴 뒤에 우체국에 방문하여 한 번에 보냈다. 우체국에는 여러 개의 짐을 보내는 사람을 위한 수레가 있고, 택배로 짐을 보내면 하루 정도면 도착하기 때문에 내 생각보다 더욱 편리하게 이용할 수 있었다.
만약 새로운 집으로 짐을 먼저 보냈다면, 새로운 집에서는 분리수거를 언제 하는지 및 가전제품은 어떻게 버려야 하는지와 같은 정보를 미리 확인해 두면 좋다. 아파트의 경우 관리 사무실에 물어보면 되고, 빌라나 소형 아파트의 경우 대표/총무님한테 물어보면 된다. 또한, 평소에 입던 옷들을 한꺼번에 택배로 부쳤다면, 습기 때문에 옷에서 좋지 않은 냄새가 나거나, 곰팡이가 조금 피어있을 수 있다. 따라서 일반 옷이 도착하면 바로 청소를 하거나 세탁소에 맡길 필요가 있다.
2. 기타 고려 사항
추가로 ① 도시가스, ② 전기, ③ 인터넷을 처리해야 한다. 기본적으로 도시가스 및 전기는 간단한 전화통화로 해결할 수 있다. 전화해서 새롭게 이사를 갔다고 말씀드리면 처리해 주신다. 다만 도시가스는 기사님이 방문해야 하기 때문에, 정해진 시간에 집에 있어야 한다. 여기에서 가장 신경을 써야 하는 부분은 인터넷 서비스인데, 인터넷 서비스는 사은품(TV 등)을 주는 경우도 있으므로, 많이 알아볼 필요가 있다.
일반적으로 이사를 갈 때는 인터넷 이전 설치를 한다. (필자의 경우 새로운 보금자리에 인터넷을 신규 설치하는 것이므로, 이전 설치는 아니다. 이전 설치는 이사할 때 기존에 사용하던 제품을 이전하여 설치하는 것을 의미한다.) SK를 사용하는 사람이라면 106번(공식 전화번호)에 전화면 [보이는 ARS]를 확인할 수 있다. 거기에서 [가입문의]를 진행하면 된다. 필자의 경우 휴대폰으로 SKT를 쓰고 있는 상태인데, 이때 ① 휴대폰과 결합하여 인터넷을 이용한다면 할인이 된다. (휴대폰 결합 할인) 다만, 필자의 경우 가족 중에서 이미 내 휴대폰에 대하여 결합 할인을 받고 있었기 때문에 진행이 어려웠고, ② 패밀리 할인으로 진행이 가능하다고 하셨다. SK의 경우 패밀리 할인을 받을 때 SK브로드밴드인지 SK텔레콤인지에 따라서 할인 혜택이 다르다고 한다. 필자의 부모님은 SK텔레콤을 사용하고 있는데, 이걸 정확히 알지 못 하는 경우에는 전화번호/생년월일 및 부모님의 전화번호/생년월일과 같은 필요 정보를 말씀드리면, 상담사 분께서 알아서 조회를 진행해주신다. 참고로 부모님이 SK텔레콤을 쓰고 있는지, SK브로드밴드를 쓰고 있는지는 직접 본사로 전화해야 확인할 수 있다고 한다. 필자는 그래서 본사에 물어보았고, 부모님이 SK텔레콤을 쓰고 있다는 것을 알았다. 쉽게 말해 필자의 부모님이 SK를 쓰고 있기 때문에, 이것과 함께 결합하여 할인을 받는 방식이다. 패밀리 할인의 경우 가족이 10개월 안에 인터넷을 바꾸면 위약금을 물 수 있다고 한다.
결과적으로 필자는 일반적으로 많이 쓰는 500MB 기가 라이트로 3년 약정을 진행했고(검색해 본 결과, 필자처럼 방송이나 온라인 강의를 하는 경우에도 500MB 정도의 속도면 무리가 없다고 한다.) 월 요금은 22,000원 정도였던 것으로 기억한다. 더불어 필자의 집은 대칭형으로 지원이 가능하다고 하셨다. 그리고 WiFi를 위해 공유기는 필자가 직접 준비하여 사용하도록 했다. 또한 기본적으로 본사를 통해 인터넷 설치를 진행하더라도 사은품으로 최소 10만 원을 받을 수 있다. (필자의 경우 본사에서 10만 원을 준다고 했다.) 참고로 사은품을 더 받고자 할 때는 뽐뿌에 방문하라고 들었다. 정확한 원리는 모르겠지만, 이렇게 하면 사은품을 더 주는 경우가 있다고 한다.
▶ 뽐뿌(Ppomppu) 통신업체(인터넷) 게시판 (링크)
뽐뿌에서 통신업체 게시판에 접속하면, 다양한 대리점 업체 목록이 등장한다. 이러한 대리점 업체 2~3곳에 전화한 뒤에, 다른 곳에서는 어느 정도의 사은품을 주기로 했다고 말씀을 드리면서, 결과적으로 사은품을 많이 주는 곳을 찾으면 된다고 한다. 일반적인 프로세스는 (인터넷 신청 → 대리점 → 본사 → 설치 기사 배정) 순서대로 진행된다. 대리점의 경우 실적이 중요하기 때문에, 담당자 분께서 사은품을 많이 주시려고 한다. 따라서 사은품을 많이 받으려면 대리점을 통해 진행하는 것이 좋다. 참고로 재약정을 진행할 때에도 대리점을 통해서 해지 가입을 진행하는 것이 유리하다고 한다. 본사의 경우 사은품 제공에 한도가 있어서 사은품을 많이 주기는 어렵다고 한다. 필자도 초보이지만, 찾아본 결과 기본적으로 인터넷 속도/요금/설치/AS 등에 있어서 본사나 대리점이나 큰 차이가 없다고 한다. 그래서 가능하면 대리점에서 하는 것이 좋다고 한다.
그리고 대칭형/비대칭형에 대해서 추가적으로 알아 둘 필요가 있다. 기본적으로 대칭형 방식(얇은 광섬유 케이블의 FTTH 케이블을 이용)으로 설치하는 편이 훨씬 좋다고 알려져 있다. 비대칭형의 경우 업로드 속도가 느려서 라이브 강의와 같은 인터넷 방송을 하기에 적합하지 않다. 일반적으로 인터넷 품질은 다운로드/업로드/Ping 성능으로 결정되는데, 비대칭형 방식은 다운로드 속도만 보장되는 경우가 많다. 이렇게 되면 단순히 방송을 떠나, 유튜브에 대용량 영상을 업로드할 때에도 많은 시간이 소요될 수 있어 불편할 것이다. 필자는 본사(106번)에 연락해 본 결과, 대칭형으로 설치가 가능한 집이라고 했다.
다만, 검색을 해 본 결과, 필자의 집처럼 오래된 집의 경우 실제로 설치 기사님이 방문했을 때는 대칭형 지원이 불가능하다고 판단하는 경우가 있다고 한다. 다시 말해 반드시 대칭형을 이용해야 하는 경우에는 설치 기사님이 방문했을 때 FTTH 지원 여부를 물어보는 과정이 필요하다. 그래서 필자의 경우 일단 본사와의 전화 통화로는 대칭형 지원이 가능하다고 하셨기에, 일단은 SK로 진행하여 기사님을 불렀다. 다만, 실제로 설치할 때 대칭형 지원이 안 된다면, 설치를 거부하고 KT로 진행하고자 계획을 세웠다.
기본적으로 한 번 설치를 진행한 뒤에는, 비대칭형이라는 이유만으로 약정 해지를 진행하기 어렵다고 한다. 따라서 설치 기사가 방문했을 때 FTTH 지원 여부를 정확히 확인하고, 그 뒤에 결정하는 것이 중요하다. 이와 같이 개통 당일날 설치를 취소하는 경우에 대부분 위약금이 청구되지 않고 돈을 지불하지 않아도 되기 때문에 대체로 괜찮다고 한다.
대칭형과 비대칭형 확인 방법으로는 "다운로드 속도와 업로드 속도가 크게 차이 나지 않는지" 확인하는 것이다. 기본적으로 인터넷 속도 측정 서비스는 NIA(한국지능정보사회진흥원)에서 제공한다. 접속하면 다운로드 및 업로드 속도를 개별적으로 측정하여 알려준다. 필자의 부모님 집에서는 다운로드 70Mbps, 업로드 35Mbps 정도의 속도가 나왔다. 실제로 내 집에서도 측정해 볼 예정이다.
▶ NIA 인터넷 속도 측정 서비스: https://speed.nia.or.kr/
결과적으로 필자는 인터넷을 신청한 다음 날에 설치를 받았고, 업로드/다운로드 속도가 500Mbps가 정상적으로 나오게 되었다. 필자는 오래된 집이라서 설치 기사님께서 별도로 모뎀 기기도 설치를 하고 가셨다. 모뎀 기기는 나중에 반납해야 한다고 하셨다. 설치도 집의 구조를 반영하여 굉장히 깔끔하게 해주셨기에 만족스러웠다. 에어컨 배관이 나가는 공간에 얇은 광케이블이 함께 나가는 형태로 작업을 해주셨기에, 외관상 매우 깔끔하다.
설치된 모뎀은 다음과 같이 생겼다. 인터넷 선과 전원 공급 선은 모두 연결을 해주고 가셨기 때문에, 랜선만 가지고 있다면 곧바로 컴퓨터에 연결해 인터넷을 사용할 수 있었다. 필자는 별도로 공유기를 구매하여 랜선을 통해 모뎀과 연결해 주었다.
그리고 자신이 현재 사용하고 있는 은행, 카드 등의 각종 주소도 이전 신청할 필요가 있다. 필자는 이사를 가는 시점에서 건강 보험, 국민연금 등 다양한 요소를 한꺼번에 처리했다.
3. 가전/가구 사야 할 것들 정리하기
가전과 가구는 새집에서 생활하기 위해 필수적이다. 사람마다 조금씩 다르지만, 필자의 경우 입주 청소를 마친 뒤에 가구를 하나씩 집에 들였다. 필자가 실제로 구매한 제품 위주로 하나씩 설명해 보겠다. 참고로 가능하면 줄자를 이용해 각 방의 크기를 잰 뒤에 도면을 그려보는 것이 좋다. 혹은 아래와 같은 프로그램을 이용하는 것도 한 가지 방법이다.
※ Floor Planner: https://floorplanner.com/
가전이나 가구를 구매할 때는 아래와 같이 네이버 BEST100 가구/인테리어, 디지털/가전을 확인해 보면 좋다.
▶ 침대 프레임
일단 가장 중요한 것이 잠을 잘 수 있는 공간이다. 그래서 침대 프레임을 구매해야 한다. 필자는 아래의 제품을 구매했는데, 그냥 네이버 쇼핑에서 찾다가 괜찮아 보여서 샀다. 일단 최대한 큰 크기의 침대 프레임을 수납형으로 구매했다. 필자가 구매한 WIDE(와이드) 침대 프레임은 2200 X 2000의 크기를 가진다. (헤드 부분을 제외해도 2000 X 2000 정도 크기의 매트리스를 넣을 수 있다.) 이러한 침대 프레임은 약 60만 원에 구매했다. 또한 배송비는 별도로 6만 원이었는데, 필자의 경우 아파트 특성상 2만 원 추가 배송 비용이 붙었다.
이 제품은 기본적으로 수납공간이 침대 아래쪽에 (누워있을 때 발 쪽에) 있다. 필자는 누웠을 때 왼쪽에 오도록 하고 싶었는데, 당시에 추가 비용이 5만 원이라고 하여 그냥 아래쪽에 두기로 했다. 주문 이후에는 멀티탭을 구비하여 침대에 연결하면 된다. 그러면 전등에 불이 들어온다. 또한 필자의 경우 개인적으로 새 침대 프레임에서 나는 냄새가 불편하여, 오랜 시간 환기를 시키고 청소를 했다. 다른 사람들은 새 가구 냄새를 제거하기 위해 캔들을 피우거나, 식물을 이용해 냄새를 빼는 방법을 많이 이용한다고 한다.
▶ 침대 매트리스
침대 프레임을 샀다면, 침대 매트리스도 구매할 필요가 있다. 이때 기본적으로 스프링 매트리스를 살지, 라텍스 매트리스를 살지 그 유형부터 고민해보는 것이 좋다. 참고로 필자의 경우 큰 크기의 침대 프레임을 구매했으므로, 매트리스도 가능한 큰 것으로 주문했다. 필자의 침대 프레임이 들어갈 수 있는 공간이 2000 X 2000 크기인데, 시몬스 매트리스가 2075 정도의 크기이므로, 적절하지 않았다. 그래서 정확히 2000 X 2000 크기인 매트리스를 찾았다. 필자의 경우 다음과 같은 M5 골든 메달리스트 라지킹2000(LK)를 구매했다.
▶ 에어컨
생활하는 데에 있어서 에어컨도 필수적이다. 필자의 집은 24평형(방 세 개)이므로 멀티형(투인원) 에어컨으로 구매했다. 일반적으로 멀티형 에어컨을 이용하게 되면 1대의 실외기로 2대 이상의 실내기를 운전할 수 있기 때문에, 상당히 효율적이다. 필자는 스탠드 에어컨은 거실과 같이 집 전체를 시원하게 할 수 있는 곳에 설치하고, 벽걸이 에어컨은 자는 곳에 설치하기 위해 멀티형 에어컨으로 구매했다. 필자는 다음과 같이 FQ17V9KWC2를 구매했는데, 기본 설치 조건으로 타공 3회, 진공작업이 포함되어 있다. 필자는 본 에어컨을 153만 원에 구매했다.
에어컨을 구매할 때는 필수적으로 에어컨을 설치할 공간에 대해서 미리 확인할 필요가 있다. 따라서 미리 방을 둘러 본 뒤에 에어컨을 설치할 수 있는 공간에 대해서 고민해 보자. 일반적으로 실외기는 앵글(베란다 밖에 걸어 놓을 수 있는 거치대 같은 제품)을 이용해 베란다 밖에 설치하고, 실내기(에어컨)는 방이나 거실에 두는 것이 일반적이다. 다만 실내기와 실외기는 배관으로 연결되어야 하기 때문에, 필요하다면 타공(벽을 뚫는 작업)이 필요할 수 있다. 매립 배관이 없는 집이라면 배관이 밖으로 노출될 수 있다.
또한 일반적인 집은 베란다 밖으로 연결되는 외부 창틀(샤시)와 방과 연결되는 내부 창틀(샤시)로 구성된다. 참고로 필자의 집은 통샤시(벽 공간이 없고 전체가 샤시로 되어 있는 경우)로 되어 있어서 타공할 벽 공간이 없는 상태였다. 이 경우 ① 보조 샤시를 쓰거나, ② 통샤시를 뚫거나, ③ 창문을 열어 놓고 쓰는 것이 일반적이다. ① 보조 샤시를 쓰는 경우 보조 샤시만 타공하면 되기 때문에 외관상 더 깔끔할 수 있다. ② 통샤시를 뚫어 버리는 경우 외관상 부자연스러울 수 있다. 필자의 경우에는 별도로 벽을 뚫지 않고, ③ 창문을 열어 놓고 사용하고자 했다.
기본적으로 설치가 완료되면 두 개의 에어컨 리모콘을 받게 되고, 사용 설명 방법에 대해 설명을 받는다. 주기적으로 필터를 청소해 줄 필요가 있다고 하셨고, 스탠드 에어컨과 벽걸이 에어컨 모두 필터를 빼내기 쉬운 구조로 되어 있다. 에어컨을 끄더라도 자동건조 과정을 거친다고 한다.
다만, 에어컨을 구매할 때는 추가 설치 비용에 대해 사전에 자세히 조사해 보는 것이 중요하다. 일단 구매 페이지에서는 다음과 같이 기본 설치는 무료고, 타공 3회 및 기본적인 배관을 제공한다고 한다. 필자의 경우 에어컨 추가 설치 비용으로 50만 원 정도의 금액이 청구되었다. 그 이유에 대해 설명하겠다. 처음에 필자의 집에는 앵글이 없어서, 실외기 앵글을 설치하기 위해 18만 원이 추가되었다. 그래서 베란다 밖에 실외기를 설치하던 도중에 아파트 관리자 분이 오셔서 필자가 사는 집은 베란다 밖에 실외기를 달지 않고, 실외기를 1층으로 내리거나 옥상으로 올리는 집이라고 말씀하셨다. 그래서 결국 실외기 앵글 비용은 그대로 지불하게 되었고, 에어컨 기사님이 실외기를 1층 화단으로 옮겨서 다시 설치했다. 다만 이렇게 하면 배관의 길이가 더 길어지고, 실외기가 1층 화단에 놓인다는 점에서 에어컨의 성능 및 수명이 떨어지는 문제가 발생할 수 있다. AS도 어려울 수 있다고 하셨다.
만약 나중에 실외기가 고장나는 경우 비용이 많이 든다고 하셨다. 특히나 에어컨의 컴프레서가 고장나는 경우 50만 원 이상의 비용이 드는 것이 일반적이기 때문에, 이러한 위험 부담을 해야 하는 상황이다. 다만, 실외기 수리할 때는 컴프레서가 고장인지, 콘덴서가 고장인지 정확히 파악할 필요가 있다고 한다. 교체 비용이 많이 차이나기 때문이다.
또한 필자는 실내기 2대 각각에 대해서 서로 다른 구멍을 통해 배관을 밖으로 빼놓았으며, 밑층 집에 피해를 주지 않기 위해서 배관을 휠 필요가 있었다. 그래서 일반적인 배관이 아닌 주름관이 필요하다고 하셨다. 설치 기사님이 말씀하시기로는 배관에 대하여 전반적으로 다 주름관을 사용했다고 하셨다. 15m 이상이 사용되었고, 이에 따라서 많은 비용이 부과될 수 있다고 하셨다. 다만, 필자가 주변에서 듣기로는 주름관이 필수적으로 사용되어야 하는 부분에만 1~2m 주름관을 사용하고, 일반 배관과 용접해 사용할 수 있다고 들었다. 또한 기술력이 뛰어난 설치 기사가 작업을 잘 할 수 있다면 일반적인 배관을 이용해서도 어느 정도 배관을 휠 수 있다고 한다. 이런 부분은 설치 기사님께서 따로 언급하지 않으셔서 실망스러웠다. 또한 기본적으로 제공되는 배관 중에서 사용하지 않고 남은 배관(동배관)은 고객에게 인계해야 한다고 명시되어 있다. 해당 부분도 전혀 언급이 없으셨다. 그래도 최대한 컴플레인을 걸지 않고, 맞춰 드리고자 했다.
참고로 필자는 옥션에서 에어컨을 구매했지만, 설치 기사님이 등록을 하게 되면 정식으로 LG 쪽에서 AS를 받을 수 있다고 하셨다. 그래서 꼭 한 번 연락드린 설치 기사님께만 수리를 받아야 하는 것은 아니라는 것으로 이해했다.
▶ 컴퓨터 책상 & 컴퓨터 의자
필자는 컴퓨터 의자로 T500HLDA를 구매했고, 컴퓨터 책상으로는 DSDB1807 게이밍 데스크를 샀다. 필자는 큰 책상을 선호하기 때문에 1800 X 700 크기의 책상을 구매했다. 또한 컴퓨터 책상은 구매자 스스로 설치가 가능한 제품이 있고, 그렇지 않은 제품이 있다. 필자가 구매한 책상은 구매자 혼자 설치하기 어려운 제품이라는 점에서 기본적으로 방문 설치가 포함되어 있다. 필자는 두 제품 모두 쿠팡(Coupang)에서 구매했으며, 구체적으로 DSDB1807을 501,000원에 샀고 TNA500HLDA 의자를 336,000원에 샀다. 다만 데스커 DSDB1807 책상은 크기가 작지 않기 때문에, 나중에 이사갈 때 어떻게 옮길 수 있는지 궁금하다. (분해한 뒤에 옮기는 것이 가능한지) 이 부분은 나중에 확인할 예정이다. 높이 조절 방법 등은 매뉴얼에서 상세하게 설명하고 있다. 필자는 아래의 두 영상을 보고 따라했는데, 정말 쉽게 잘 설명되어 있다.
※ T50 의자 사용자 가이드: https://www.youtube.com/watch?v=D_jPnsjvEcM
※ 데스커 게이밍 책상 가이드: https://www.youtube.com/watch?v=wUY6Yhz_UeA
▶ 개인 컴퓨터(PC)
필자의 경우 자신의 집이 생겼다면 데스크탑을 구매하는 것을 추천한다. 컴퓨터의 경우 가격대에 맞는 가성비 좋은 제품 리스트가 존재하기 때문에, 그것을 참조하여 견적에 맞는 컴퓨터를 구매하도록 하자.
▶ 음식물 처리기
음식물 처리기도 필요하다. 필자의 경우 친환경 미생물 음식물 처리기를 구매했다. 간단히 음식을 먹고 남은 것을 넣어주면 알아서 미생물이 음식물 쓰레기를 분해해준다고 한다. 필자가 구매한 제품은 FR-C350인데, 많이 조사해보고 산 것은 아니며 주변에 아는 친구가 추천해줘서 구매했다. 구체적으로 필자는 아래 제품을 63만 원에 구매했다.
필자가 구매한 미생물 음식물 처리기는 언제든지 음식물 쓰레기를 버릴 수 있고, 설치가 쉽다는 점에서 장점이 큰 것 같다. 필자는 구매 이후에 베란다에 설치하고 쓰고 있는데, 식사를 하고 남은 밥을 넣어주기만 하면 되기 때문에 굉장히 편리한 것 같다. 다만, 투입하면 안 되는 쓰레기 종류(뼈, 껍데기 등)도 있으며, 물기를 제거한 뒤에 넣어주어야 한다는 점에 유의할 필요가 있다. 그리고 필자는 혼자 살고 있기 때문에, 며칠 동안 음식을 넣어주지 못하는 경우도 있다. 이래도 미생물의 수명에 영향을 미치지 않는지 물어볼 필요가 있었다.
※ 친환경 음식물처리기 FR-C350: https://ohou.se/productions/892939/selling
▶ 식탁 & 의자
필자는 별도로 식탁을 구매하지 않았다. 필자는 등받이가 없는 스툴(stool) 의자를 구매했다. 개인적으로 전등을 갈아야 할 때처럼 딛고 올라가야 할 때나, 손님이 왔을 때 가볍게 앉을 자리를 제공하기 위한 목적으로 구매했다. 필자는 "고무나무 원목 의자/스툴의자/나무의자 13종" 제품군을 확인해 보았다. 결과적으로 필자는 (주)헤이케일라에서 고무나무 등받이 스툴(기본형)을 주문했다. 앉는 곳까지의 높이가 42cm인 것으로 보여, 적절한 높이라고 생각되어 구매했다. 스툴 제품은 자신이 직접 조립해야 하는 경우가 많다는 점에 유의할 필요가 있다. 필자가 구매한 제품도 스스로 조립해 사용해야 하는 제품이다.
▶ 쇼파
▶ 선풍기
▶ 냉장고
냉장고도 구매했다. 냉장고를 구매하기 전에는 냉장고가 들어갈 수 있는 공간이 충분한지 확인할 필요가 있다. 일반적으로 냉장고의 높이는 180cm 정도다. 필자는 LG전자 디오스 F873S11E를 구매했다. 구체적으로 아래 냉장고는 (너비 912 X 높이 1787 X 깊이 928)의 부피를 가진다. 찾아보니까 다른 사람들이 가장 많이 사용하는 모델이 LG 디오스인 것 같아서 나도 그냥 이것을 구매했다. 필자는 이를 157만 원에 구매했다.
※ LG 디오스 F873S11E: http://item.gmarket.co.kr/DetailView/Item.asp?goodscode=2172217797
다만, 슬프게도 설치 기사님이 방문했을 때, 내 집 문의 너비가 딱 80cm라서 냉장고가 들어올 수 없었다. 그래서 설치 기사님이 그대로 돌아가셨고, 필자는 어쩔 수 없이 [취소신청]을 해서 환불을 받게 되었다. 설치 기사님께서는 60cm 너비의 냉장고를 구매하는 것을 추천해 주셨다.
필자는 그래서 네이버 냉장고 베스트 100에서 다시 한 번 고르기로 했다. 결과적으로 필자는 아래의 제품을 727,000원에 구매했다. (냉장고 697,000원 + 배송비 30,000원) 본 제품은 (너비 780 X 높이 1800 X 깊이 730)의 부피를 가진다.
※ LG BS501S51 일반 냉장고: http://item.gmarket.co.kr/DetailView/Item.asp?goodscode=2148310738
▶ 세탁기 & 건조기
필자는 세탁기와 건조기를 모두 포함하고 있는 워시타워(세탁기 + 건조기)를 구매했다. 처음에 필자는 ① LG전자 워시타워 W16WTA 제품(가로 700 X 높이 1890 X 깊이 770)과 ② 삼성전자 그랑데 WF21T6000KW + DV16T8520BW 제품(가로 686 x 높이 984 X 깊이 796) 사이에서 고민했다. 또한 세탁기와 건조기를를 구매하기 전에는 베란다에 제품이 들어갈 수 있는지 확인해 볼 필요가 있다. 필자의 베란다는 가로 너비가 880mm 정도라서 설치 자체는 가능한 것으로 보였다. 그리고 삼성전자 세트는 다음과 같이 당시 네이버 쇼핑 BEST 1이었기 때문에, 이것으로 구매하고자 하는 마음이 생겼다.
내가 본 삼성전자 제품이 더 저렴했기 때문에, 결과적으로 삼성전자 제품을 구매하게 되었다. 그랑데 AI 제품도 있어서 고민이 되었지만, 그냥 일반 그랑데 제품으로 구매했다. 기본적으로 직렬 설치(세탁기와 건조기를 위아래로 두는 방식)를 하게 되면, 공간 절약이 가능하기 때문에 좋은 것 같다. 필자는 176만 원에 구매했다. 필자의 경우 별도로 추가 설치 비용이 들지 않았고, 베란다에 있는 배관 및 수도꼭지에 호스로 연결하여 빠르게 설치해 주셨다. 필자의 경우 직렬 설치로 세탁기는 아래쪽에 두고, 건조기는 위쪽에 두었다.
일반적으로 세탁기나 건조기를 모두 기본 설정으로 맞춘 뒤에 사용해도 괜찮다. 평상시 사용하지 않을 때는 세탁기와 건조기 문을 열어 놓고 있으면 되고, 2주에 한 번씩 필터를 청소해 주면 된다고 하셨다. 더불어 청소할 때는 청소 솔과 티슈를 이용해 먼지를 깨끗히 털고 제거한 뒤에, 필요시 물과 함께 세척한 뒤에 그늘에 말리면 된다고 하셨다. 검색해 보니까 세탁기와 건조기의 크기가 크기 때문에, 이불 빨래도 가능한 것으로 보인다. 또한 필자의 집에서는 건조기에 호스를 연결해 자동으로 물을 배출해주기 때문에, 물통을 갈아 줄 필요는 없게 되었다.
※ 삼성전자 드럼 세탁기(WF21T6000KW) + 건조기(DV16T8520BW)
▶ 공기청정기
공기청정기는 필자의 지인이 사주기로 했다.
▶ 식기세척기
식기세척기 또한 필자의 지인이 사주기로 했다. 필자가 선물받은 제품은 쿠쿠 CDW-A0310TW 3인용 제품인데, 특히나 혼자 사용하기에는 충분한 제품인 것으로 보인다.
▶ 제습기
▶ 청소기
필자는 쿠쿠 CVC-A1420UG 제품을 구매했다. 가격도 청소기 중에서는 저렴한 편이고, 상품 평가도 괜찮다는 점에서 이를 구매했다. 약 25만 원을 지불했다.
▶ 전자레인지
집에서 음식을 해먹을 생각이라면, 전자레인지도 필수적이다. 필자는 다음의 제품을 구매했다. 할인된 가격으로 약 10만 원 정도의 금액으로 구매할 수 있었다. 네이버 BEST 100 전자레인지 목록을 확인해 보는 것도 좋다.
※ LG 전자레인지 MW22CD9: http://item.gmarket.co.kr/Item?goodscode=2182733200
▶ 선반 및 수납장
이사를 간 뒤에 살림을 하다 보면, 조금씩 짐이 생기게 된다. 조금 생활하다가 수납장이나 선반이 필요하게 되는 시점에 구매하는 것도 좋은 방법이다.
▶ 커튼
필자의 경우에는 빛이 들어오는 것을 선호하지 않기 때문에, 일반적인 커튼보다는 암막커튼을 선호한다. 사실 블라인드 + 일반 커튼 조합을 사용할 수도 있는데, 개인적으로는 암막커튼이 일반 커튼보다 방한 효과가 크기 때문에 더 선호한다. 특히나 필자는 에어컨을 쓰기 위해 문을 열어 놓기 때문에, 에어컨이 있는 방에 각각 암막 커튼을 설치하고자 하였다. 커튼의 경우 자신이 직접 구매하여 설치할 수 있기 때문에, 최대한 혼자 힘으로 설치를 하고자 노력했다. 처음 커튼을 구매한 뒤에는 드라이클리닝을 한 뒤에 사용하는 것이 좋다고 한다. 하지만 필자는 세제를 사용하지 않고, 간단히 찬물 울 세탁으로 헹군 뒤에 그대로 커튼봉에 달아서 자연세탁을 진행했다. 또한 필자는 샤시에 설치할 수 있는 커튼 브라켓을 구매했는데, 별도로 못을 박지 않아도 조여서 설치할 수 있는 제품이라서 편리했다.
1. 컴퓨터방 암막 커튼 (145 X 230): https://www.coupang.com/vp/products/180352941
2. 안방 암막 커튼 (180 X 225): https://www.coupang.com/vp/products/91961193
3. 안뚫어고리 커튼 브라켓: https://www.coupang.com/vp/products/4328334757
4. 25mm 커튼봉 10자 (190 ~ 300cm): https://www.coupang.com/vp/products/67541662
▶ 기타 사야 할 물건들
기타 필요한 물건은 정리해서 주변 다이소에 가서 구매하는 것이 좋다. 필자의 경우 빨래 바구니, 멀티탭, 젓가랏, 숟가락, 컵, 그릇, 수건, 걸레, 과도, 가위, 냄비, 후라이팬, 손톱깎이, 휴지, 물티슈, 밀대걸레(대걸레), 빗자루, 마스크, 반창고, 붕대, 진통제, 치약, 칫솔, 비누, 샴푸, 린스, 면도기, 클렌징폼, 빨래 세제, 섬유유연제, 수면 안대, 페브리즈, 쓰레기 분리수거함(플라스틱, 종이, 병, 캔), 일반 쓰레기 통, 공구세트(줄자, 드라이버 포함), 헤어 드라이기, 면봉, 디퓨저, 공유기, 랜선, 옷걸이, 돌돌이, 마스크, 스킨, 로션, 수분크림, 썬크림, 모자, 바퀴벌레 약, 옷장용 제습제, 화장실 청소 도구(베이킹 소다, 변기솔), 가글, 에어프라이어, 마우스 패드, 냄비 장갑 등을 구매했다.
여기에 명시된 물건들은 가능하면 빠르게 구비하는 것이 좋다. 필자의 경우 일단 쓰레기 분리수거함부터 구매를 했다. 필자가 구매한 분리수거함의 제품명은 SINGLERIDER 가정용 재활용 3단 분리수거함인데, 필자는 다음과 같이 타코린백으로 된 제품을 선호하여 이를 구매했다. 종이, 플라스틱, 캔 박스로 나누어지며, 각 박스는 (너비 30cm X 깊이 30cm X 높이 60cm)이다.
또한 필자는 쿠팡에서 핸디맨 공구세트를 약 3만 원에 구매했다.
수건도 쿠팡에서 통째로 구매했다.
평소에 옷을 대충 던져두는 안 좋은 습관이 있어서, 옷걸이도 한꺼번에 많이 구매했다.
일상생활에서 사용하기 위한 화장지(휴지)도 구매했다.
개인 컴퓨터(PC) 목적으로 사용할 멀티탭도 구매했다.
나갈 때마다 한 장씩 뽑아 사용하기 위해 마스크도 구매했다.
하얀색 마스크도 샀다.
돌돌이도 샀다.
헤어 드라이기도 샀다. 딱 보자마자 디자인이 심플해 마음에 든다는 점에서 이걸로 구매했다.
세탁 세제도 구매했다. 필자가 구매한 삼성전자 그랑데 세탁기는 드럼 세탁기이므로, 드럼용 액상세제를 구매했다.
섬유유연제도 대충 평가가 괜찮은 제품 중에서 오늘 도착이 가능한 제품으로 구매했다.
랜선도 샀다. 필자는 가능하면 긴 랜선을 구매한 뒤에, 끈을 이용해 남는 길이의 선을 별도로 정리하는 방식을 선호한다.
면봉도 필요할 것 같아서 샀다.
필자에게 수면 안대는 생존에 있어서 필수품이다. 그래서 구매했다.
주변에서 디퓨저도 구매하라고 추천해서, 아무거나 골라서 구매했다.
공유기는 지인으로부터 추천 받은 A6004MX를 구매했다. 기가비트를 지원한다. 필자가 원래 가지고 있던 공유기의 콘덴서가 폭발해 버리는 바람에 필수적으로 구매해야 했다.
필자는 간혹 주말에 강의를 나가기 때문에, 강의와 관련하여 계약을 해야 할 일이 많다. 또한 부동산 계약이나 기타 구두 계약을 진행할 때가 많다. 본인이 주체가 되는 계약을 진행할 때 녹음을 하는 것은 법적으로 문제가 없기 때문에, 정말 중요한 계약이 있을 때 쓰기 위해 녹음기를 구매했다.
필자는 클렌징 패드도 구매했다. 필자는 주말에 보통 집에서 공부를 하면서 시간을 보내는데, 세수하기 귀찮을 때가 있다. 이럴 때 그냥 클렌징패드를 가끔 쓰는데 괜찮은 것 같다. 이런식으로 사는게 정상적인지는 모르겠지만, 해보니까 편하다. 밥 먹으러 집 앞에 잠깐 나갈 때는 간단히 군모를 착용하면 편하다.
필자의 경우에는 애터미 옴므 로션과 수분 크림을 사용한다. 개인적으로 가장 잘 사용하고 있는 제품이라서, 한 번 살 때 대용량으로 엄청 많이 사놓는다.
썬크림도 귀찮아서 한 번에 여러 개를 사놓고 쓴다.
필자는 치약도 한 번 살 때 쿠팡에서 대용량으로 구매하는 편이다.
또한 제로 칼로리 탄산음료를 대량으로 시키는 것도 잊지 않는 편이다.
가글도 자주 사용하기에 구매했다.
또한 의외로 자주 사용하는 것으로 압축 제거기 핀셋이 있는데, 여드름뿐만 아니라 다양한 상황에서 매우 유용하다.
그리고 필자는 손목이 안 좋아서 손목 보호가 되는 마우스 패드를 구매했다.
물도 주기적으로 시켜주는 편이다.
샴푸도 금방 사용해서 부족하기 때문에 자주 구매해준다.
바디워시도 주기적으로 구매한다.
자주 사용하는 면도기다.
필자는 팬티랑 양말도 주기적으로 구매한다. 특히나 양말은 자꾸 하나씩 잃어버리기 때문이다.
필자는 보조적으로 사용할 책상과 선반도 구매했다. 필자는 목장갑을 늦게 구매하여, 아래 제품들을 맨손으로 조립했다. 목장갑을 끼고 하면 훨씬 나을 것 같은데, 맨손으로 하려니까 손의 악력이 굉장히 많이 요구되었다. 구멍이 좁아서 최대한 힘을 주고 볼트를 조여서 문제를 해결했다. 개인적으로 각 볼트를 70% 정도만 조여서 전체적인 모양을 잡은 뒤에, 틀이 모두 잡히면 한꺼번에 모든 볼트를 조이는 방식이 효율적이었다.
위와 같이 다양한 선반을 써보니까 괜찮은 것 같아서 선반형 책상, 3단 정리함, 2단 선반도 추가적으로 구매했다. 마찬가지로 기본적인 조립이 필요한 제품들인데, 동일한 방식으로 볼트를 70% 정도만 조여서 전체적인 모양을 잡고, 틀이 모두 잡히면 한꺼번에 모든 볼트를 조여서 효율적으로 조립할 수 있다.
이어서 면장갑도 구매했다.
전동 드라이버도 구매했다.
그리고 컴퓨터로 다양한 업무를 볼 때 필요한 [멀티 리더기]와 [USB 허브]를 구매했다.
이후에 침대에서 누워서 스마트 폰을 볼 때 사용할 침실용 스마트폰 거치대도 구매했다.
또한 물티슈도 주기적으로 구매하는 편이다.
필자는 이사를 가면서 옷을 많이 버렸다. 그래서 무신사에서 대량으로 구매했다. 주변 형들이 하는 말로는 회사에서 가벼운 카라 티셔츠나 슬렉스를 입고 있는게 단정함을 지키면서도 편하다고 한다.
▶ 기타 전자제품
기타 전자제품도 미리 고려해 두면 좋다. 스마트 폰, 에어팟, 휴대용 선풍기 등 이사 시점에 전자제품을 새롭게 구매하는 일이 많을 것이다. 또한 이사간 집에서 회사까지 가기 위해 대중교통을 이용해야 한다면, 버스카드 충전 방법을 미리 알고 있는 것이 좋다. 버스카드 충전은 스마트 폰 앱을 이용해서도 간단히 진행할 수 있다.
▶ 기타 해야 될 일들
이어서 집 비밀번호를 바꾸는 작업, 기존에 설치된 제품에 대한 관리가 필요하다. 필자의 집에서는 이전 집주인이 CCTV 제품을 두고 갔다. CCTV 제품의 경우 배터리만 갈아 주면 다시 사용이 가능하다고 하셨다. 또한 생활을 위해 필수적으로 알아 두어야 하는 것들을 나열하면 다음과 같다.
먼저 헬스장이다. 네이버 지도에 "헬스장"을 검색하여 자신의 집 주변에 어떤 헬스장이 있는지 확인해 볼 필요가 있다. 필자의 경우 별도로 PT를 받지 않고, 혼자서 3대 운동 위주의 운동을 한다. 따라서 PT를 강제하지 않고, 오랜 시간 열려 있으면서, 가격대가 저렴한 헬스장을 찾아서 결제했다.
※ 네이버 지도 "헬스장" 검색: https://map.naver.com/v5/search/%ED%97%AC%EC%8A%A4%EC%9E%A5
그리고 집 주변에 있는 병원도 미리 알아두는 것이 좋다. 네이버나 구글에 이비인후과, 정형외과, 내과, 피부과를 검색하여 병원의 내부 사진 및 별점을 사전에 확인하자. 특히 해당 지역에 몇 년 거주하다 보면, 어쩔 수 없는 일로 병원에 내원하게 되는 일이 생길 수도 있다.
※ 네이버 지도 "외과" 검색: https://map.naver.com/v5/search/%EC%99%B8%EA%B3%BC
또한 주변 음식점 중에서 어떤 집이 맛있는지 조사해 보는 것이 좋다. 근처에 있는 음식점을 직접 다녀보기 귀찮다면, 요기요와 같은 배달 서비스를 이용해서 이곳저곳에서 많은 음식을 시켜먹어 보는 것도 좋은 방법이다. 필자의 경우 요기요라는 배달 서비스를 자주 사용했다. 필자는 스마트 폰 앱을 쓰는 것보다, 컴퓨터를 쓰는 것이 편하다. 요기요의 경우 웹 사이트에서도 내 집 주변에 있는 음식점을 검색하는 것이 가능하기 때문에, 지극히 개인적으로는 가장 편리했다. 하지만 웹 사이트에 적힌 번호로 전화하면, 앱으로 주문을 부탁드린다고 하시는 경우가 많다. 그래서 현재는 플레이스토어에서 앱을 다운로드해서 설치하고 있다.
※ 요기요 웹 사이트: https://www.yogiyo.co.kr/
그리고 현재 자신이 거주하고 있는 아파트나 빌라에서의 규칙에 대해서 알고 있으면 좋다. 필자의 경우 기본적으로 수도 검침, 계단 청소 등의 목적으로 아파트 관리비를 주기적으로 내야 한다. 필자는 가끔 일 때문에 정신이 없는 바람에 까먹어서 연체료를 내곤 한다.
그리고 쓰레기를 주기적으로 수거해 가기 때문에, 매주 무슨 요일에 쓰레기를 내놓으면 되는지 확인할 필요가 있다. 이때 당연한 이야기이지만, 기본적인 쓰레기 분리수거 방법에 대해 알고 있어야 한다. 일반적으로 과일 껍질은 음식물 쓰레기로 버리고, 씨와 같이 단단한 과일 부산물은 일반 쓰레기로 버린다. 캔, 빈 병, 종이 등은 재활용품으로 분류되기 때문에 분리하여 버릴 필요가 있다. 많은 생활 쓰레기는 일반 쓰레기이지만, 의약품이나 폐건전지와 같이 특수한 물품은 따로 수거된다. 냉장고와 같이 큰 물건은 별도로 대형 쓰레기 전용 스티커를 구매해서 부착한 뒤에 버려야 한다.
'기타' 카테고리의 다른 글
Instance Normalization를 NumPy 및 PyTorch로 구현하는 방법! (0) | 2021.08.18 |
---|---|
한국투자증권 모바일 앱으로 해외 주식 거래 하는 방법 (해외 주식 거래 신청 방법) (0) | 2021.08.17 |
딥러닝(Deep Learning) 학회에 논문을 제출한 뒤에, 리뷰(Review) 평가 분석 및 Rebuttal 쓰는 방법 (0) | 2021.08.13 |
Python 코드를 활용하여 동전 던지기로 주사위 굴리기와 같은 결과 만들기(Rejection Sampling과 확률론) (0) | 2021.08.12 |
연구자를 위한, Google Scholar에 회원가입(프로필 등록)하는 방법 (0) | 2021.08.11 |