# 파이썬 리스트



리스트란 여러가지 데이터를 저장하는 자료구조입니다. 리스트를 이용하면 숫자나 문자열 등의 데이터를 다량의 변수를 선언하지 않고도 간단하게 표현할 수 있습니다.

무엇보다 Python에서의 리스트는 자료형에 구애받지 않고 자료형에 상관없이 한개의 리스트에 혼합하여 저장할 수 있는 장점이 있습니다.


1. 리스트의 생성 및 데이터 저장


1
2
3
4
5
6
arr1 = [1,2,3,4,5# ok
arr2 = ["a","b","c","d"# ok
arr3 = ["1",2,"3",4,"babo"# ok
arr4 = [1,2,[3,4,5,6]] # ok
arr5 = [] # 빈 리스트 생성
arr6 = list() # 빈 리스트 생성
cs



2. 인덱싱


리스트는 문자열과 같이 인덱싱을 적용하는것이 가능합니다. 리스트의 첫번째 요소를 0번 인덱스로 지정하고 마지막요소에 리스트의 크기-1 인덱스를 지정합니다.

- 참고 : 마지막 인덱스는 -1로 표현하고 1씩 감하여 이전 인덱스를 표현합니다.


1
2
3
4
5
arr = [1,2,3,4,5]
# a[0] == 1
# a[4] == 5
# a[-1] == 5
# a[-2] == 4
cs


만약, 리스트안에 다중으로 리스트가 들어있는 경우에는 인덱싱을 두번하여 중첩 리스트안에 있는 데이터에 접근할 수 있습니다.


1
2
3
arr = [1,2,[1,2,3]]
# arr[-1] == [1,2,3]
# arr[-1][-1] == [3]
cs



3. 슬라이싱


리스트는 문자열과 마찬가지로 인덱싱 뿐만아니라 슬라이싱 또한 가능합니다.  범위를 지정하여 시작 인덱스의 요소부터 마지막 인덱스의 요소로 구성된 리스트로 분할합니다.


1
2
3
arr=[1,2,3,4,5]
# arr[0:2] = [1,2]
# arr[2:] = [3,4,5]
cs


4. 리스트 요소 수정


리스트의 데이터를 변경하고 싶을 경우에는 해당 인덱스에 대입연산자를 사용하여 데이터를 삽입하면 됩니다.


1
2
3
arr = [1,2,3,4,5]
arr[0= 5
# arr == [5,4,3,2,5]
cs




# 객체의 복사


파이썬에서는 리스트도 객체에 해당하기 때문에 복사를 하게되면 바로보는 객체가 동일하기 때문에 두개의 리스트 중 하나만 변경해도 나머지 하나가 동일하게 수정되는 현상이 발생합니다.


1. shallow copy(얕은 복사)


1
2
3
4
5
6
7
8
9
10
11
= [1234]
= a
print(b)
b[2= 5
print(b)
print(a)
 
#결과값
[1234]
[1254]
[1254]
cs


a라는 변수를 선언하고 리스트를 만들어 a에 할당하면 a는 리스트객체의 주소가 저장된 변수가 됩니다.

그럼 a라는 변수의 값을 b라는 인자에 할당하였을 경우, b는 a와 같은 객체의 주소가 저장된 변수가 되는걸까요? 정답은 예,그렇습니다. b를 불러와 인덱스 2번의 값을 5로 변경하면, a에도 똑같이 적용되어 a의 값이 1,2,5,4가 되는 것을 위의 코드를 통하여 알 수 있습니다.



리스트는 값을 대입하면 값에 대한 메모리가 새로이 할당되는 것이 아닌 기존 값의 메모리 주소를 공유하기 때문에 발생하게 됩니다. 리스트 같은 경우 리스트 자체뿐만 아니라 리스트 내 요소들도 같은 주소를 공유하고 있습니다. 이를 Shallow Copy(얕은 복사)라고 부릅니다.



2. Deep Copy(깊은 복사)


이러한 현상을 방지하기 위해서는 Deep copy를 사용하여 복사하면 됩니다. 방법은 간단합니다. 기본라이브러리인 copy를 사용하는 방법이 있지만 더욱 간단한 사용을 위해 다른방법을 설명드리겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#1번 방법
= [1234]
= a[:]#리스트 슬라이싱
print(b)
b[2= 5
print(b)
print(a)
 
#2번 방법
= [1234]
= list(a)#리스트 내장함수사용
print(b)
b[2= 5
print(b)
print(a)
 
#결과값(1번과 2번 동일)
[1234]
[1254]
[1234]
cs


간단하게 리스트를 슬라이싱하여 대입하면 shallow copy가 일어나지 않습니다. 또 list 내장함수를 사용하면 Deep copy가 진행되어 리스트 복사문제를 해결 할 수 있습니다.

'Dev > python' 카테고리의 다른 글

[python] 딕셔너리(dictionary)  (0) 2019.02.13
[python] 리스트 함수  (0) 2019.02.11
[python] 문자열 함수  (0) 2019.02.09
[python] 문자열  (0) 2019.02.07
[python] 기본자료형 - 숫자  (0) 2019.02.07

# 필리핀 세부


이번 연말에 짬을 내어서 필리핀 세부에 3박 4일간 여행을 다녀왔습다.


인천 공항에서 오전 8시에 진에어를 타고 12시쯤 세부에 도착하였습니다.

처음에 도착해서는 세부공항에서 sim카드 12GB를 구매하여 장착하고 현지에 맞게 세팅하였습죠


필리핀에 대표적인 통신사 두개가 있는데 globe와 smart입니다. 둘다 데이터비 가격면에서는 큰 차이가 없으나 globe가 더 잘터진다는 속설이 있어서 globe에서 구매하였습니다. 실제로 smart에는 줄이 없더라고요.


반면에 globe는 사람이 미어 터져서 시간이 꽤 지체되었습니다.


공항에서 식사를 하기위하여 막탄 시내에 있는 AA BBQ로 향하기 위해서는 택시를 타야했습니다.

그런데 그냥 길가에 있는 택시를 믿을 수가 없어서리.. 동남아 여행의 필수라는 GRAB 어플을 이용해서 택시를 잡아탔습니다.




GRAB 번호인증에서는 현지번호를 넣어주셔야 됩니다. 번호인증이 안되서 헤맸었는데요 ... ㅎㅎㅎ


현지 번호를 입력해주셔야 인증 문자가 정상적으로 수신됩니다. 괜히 한국 번호 넣지마세요


sim카드 상단에 보면 현지번호가 나와있습니다.




GRAB을 이용하기 위해서는 페이스북인증이나 카드인증을 진행해야 합니다. 저는 카드를 넣어서 바로 결제가 되게끔 GRAB pay와 연동해서 사용했습니다.



택시를 타고 첫번째 장소로 이동하여 식사를 했습니다.


메뉴는 잘 기억이 안나는데 일단 추천을 받아서 주문했습니다. 저기보이는 갈비탕 같은것 ... pochero라고 하는데꼭 먹어보세요 존맛탱입니다.


그리고 망고 주스보다는 망고 쉐이크가 훠어어어어어어얼씬 맛있습니다 ㅋㅋ


저날 조금 폭식을 해서 4인이서 2000페소 가까이 지출 하였습니다



앞으로의 타이트한 일정에 대비하기 위하여 첫날 마사지를 받기로 하였습니다. 막탄시내의 로미스파라는 곳인데 여기 굉장히 추천합니다. 픽업서비스도 잘되어 있고 가격도 저렴합니다. 무엇보다 한국인이 운영하는 카톡이있어서 예약도 편하더라고요 마사지가격은 인당 1000~2000사이쯤 됩니다.



마사지를 끝내고 나니까 다시 밥먹을 시간이 되어서 어디 나가기도 귀찮고 해서 룸서비스를 시켜먹어보기로 결정하였습니다. 한국이나 유럽같은 곳에서는 룸서비를 상상도 해본적이 없는데 여기는 가격이 매우 괜찮았습니다. 비싸봐야 500페소정도 하더라고요(한국돈 1만원 정도) 그래서 나시고랭, 른당, 치킨아도보를 시켜서 맛있게 먹었습니다. 가운데 있는 우유같은것은 망고사고라는 디저트인데 따뜻한 코코넛밀크에 망고를 넣은 것입니다. 개인적으로는 별로....



식사를 마치고 호텔 루프탑에 있는 풀에 놀러갔습니다~~~ 분위기 개쩔고 뷰미쳤고 ~~~~ 예!!!!

술도 팔고있고 타올도 하나씩 주더라고요 굉장히 좋습니다.




# 세부 스쿠버다이빙



두번째 날부터는 이틀간 스쿠버다이빙을 하러갔습니다.

날씨가 우중충해서 기분 급 다운 ㅠㅜㅜㅠㅜㅜㅜㅜ



막탄섬 끝자락에 있는 시홀스다이빙에서 PADI openwater 코스를 진행하였습니다. 이 자격증을 따놓으면 외국에 가서도 할 수 있다고 하더라고요 그래서 바로 get get!! 한인이 운영하는 곳이라 의사소통에 전혀 문제가 없습니다.


0123


교육이 시작되면 처음 인적사항을 제출하고 주의사항과 이론 수업을 진행합니다. 그리고 바로 샵 안에있는 수영장에서 연습을 진행하는데요, 수영장 수심이 꽤 깊어서 실제 바다와 크게 다르지 않았습니다. 오전에 수영장에서 연습한 후 점심식사를하고 바로 바다에 나가 다이빙을 시작했습니다.  다이빙 포인트는 샵에서 배를타고 1~2분만 나가면 있는곳이었는데요 첫날에는 수심 10미터 이상으로 들어가진 않고 얕은 수심에서 진행하였습니다.


스쿠버 다이빙을 처음해봤는데 완전 신세계더라구요 ㅎㅎ 수업이 전부 종료되면 저녁도 주는데 저희는 마사지를 받으러 가기위해 저녁은 패스하고 마사지를 받으러 갔습니다.



이튿날 부터는 본격적인 다이빙을 실시합니다. 총 3번 입수하는데 최대 18미터까지 내려갑니다. 어제는 보트를 타고 나갔는데 이번에는 산소통운반을 위해서 빠지선을 타고 바다에 나갔습니다. 다이빙 포인트는 동일했습니다.


012345


세부 바다는 저~~~~~~~~~~~~~~~엉말 아름답습니다. 카메라가 다 못담았네요 ㅜㅠㅜㅜㅜㅜㅜㅜㅜ


아 그리고 샵에서 강사님이 수중카메라를 들고 사진을 찍어주시기 때문에 고프로같은 카메라를 안가지고 가도 무방합니다. 다이빙이 종료되면 이론 수업을 하고 자격증 시험을 보는데 50문제중 38문제 이상 맞추면 합격입니다.


굉장히 쉽고 답도 거의 알려주다 싶이하더라고요 스쿠버다이빙은 인당 30만원 정도였습니다. 이틀간 아침,점심,저녁 다 제공해주고요 여기에 2만원정도만 더내면 숙박까지 가능합니다. 시설은 그냥그래요 그래서 저희는 외부숙소에서 택시타고 다녔습니다.


아 택시비도 지원해줘서 1200페소를 현금으로 받았습니다.



다이빙 마치고 저녁으로 샵근처에 딥질로그라는 로컬 맛집에 방문하였습니다. 맵보고 찾아가시는 분들은 고생좀 하실거에요 찾기 쉽지않습니다 ㅜㅜ 그리고 딥질로그에서 굉장히 놀란것 하나는 가격인데요 .... 진짜 필리핀에서 먹은 음식중에 제일 쌌습니다. 근데 존맛탱....



~로그라고 이름 붙은 음식들은 다 덮밥입니다. 위 사진은 시실로그인데요 가격이 70페소 입니다 ㄷㄷㄷ(1400원)

진짜 존맛이에요 집앞이면 맨날갑니다.



바베큐도 시켰는데요 닭다리는 개당 80페소 산미구엘은 개당 10페소 돼지고기 바베큐는 10개에 100인가 200페소 였습니다.




# 오슬롭 고래상어투어 & 가와산 캐녀닝



마지막날에는 오슬롭 + 가와산 캐녀닝을 다녀왔습니다. 호텔에서 3시30분에 픽업차량이 출발해서 레스토랑에 도착하였습니다. 아침식사는 코코넛 맛이나는 밥이랑 망고였는데 사진이 없네요 이거 꽤맛있습니다.


그리고 필리핀여행의 최고장점은 인건비가 싸서 가이드가 항상 붙어 다닙니다. 저는 픽업차량 운전수 + 오슬롭 가이드 + 캐녀닝 가이드 이렇게 세분이 붙어서 같이 다녔습니다.


오슬롭 갈때 픽업차량에 계속 짐을 싣고 다닐 수 있기때문에 짐걱정 하실 필요가 없습니다.


01234


밥먹고 나서 바로 고래상어를 보러갔는데요 환경세 인당 500페소씩 냈어요 돈을 내면 구명조끼랑 스노클링 장비를 받습니다.그리고 수중카메라 렌탈을해서 550페소 추가로 지출하였는데요 수중카메라 렌탈을 하면 뱃사공분이 노는동안 알아서 사진을 찍어주십니다. 그리고 끝나면 핸드폰으로 전송해주시더라고요 ㅎㅎㅎ 리얼 개꿀...


아 그리고 수영못하시는 분들도 걱정하실 필요가 없는게 여기 바다가 부력이 굉장히 쎄서 물에 그냥 뜹니다.



저위에보이는 배에 타서 고래상어가 있는곳으로 나간다음 그냥 입수해서 노는겁니다. 야생의 고래


상어와 헤엄친다는것이 진짜 경이롭더라고요 인생경험입니다. 강추!!



고래상어 체험이 끝나면 샤워실에서 간단하게 샤워를 하고 투말록 폭포라는 곳으로 향합니다. 가이드가 알아서 오토바이잡아서 보내줘요 ㅋㅋㅋ


도착하면 처음에 닥터피쉬풀에 발담그고 잔재미좀 볼 수 있습니다.


01234


투말록 폭포는 굉장히 아름다웠습니다.... 장관이더라고요 진짜 ㅋㅋㅋㅋㅋ 폭포가 콸콸 쏟아지는 것이 아니라 보슬비처럼 내리는데 와............... 심장멎는줄 알았어요


여기는 사람도 크게 안많고 사진찍을 스팟도 굉장히 많습니다. 




투말록 관광까지 마치면! 다시 아침에 왔던 레스토랑에 복귀해서 밥을 줍니다. 메뉴는 선택할 수 는 없는데 그냥 맛있어요 주는데로 먹읍시다 ㅋㅋ 호불호가 크게 안갈릴 음식이었던걸로 기억되네요



밥을 다먹으면 바로 가와산으로 향하는데요, 여기서 오슬롭가이드와는 빠이빠이 합니다. ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ


진짜 친절했는데 아쉽더라고요 그래서 팁 크게주고 고마웠다고 인사하고 왔습니다. 



가와산에 도착하면 또 가이드가 있는데 이 가이드가 헬멧과 구명조끼, 신발을 주고 서약서를 작성하게 합니다. 여기서 방수팩을 구매하실 분들은 150페소만 내면 구매가 가능합니다. 그러면 사진도 다찍어줘요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ


샵에서 오토바이를 타고 캐녀닝어드벤처 입구로 오토바이를 타고 갑니다. 한 10분에서 15분정도 걸렸어요



캐녀닝 중반부 쯤에 좀 높은 점핑 스팟이 있는데요 거기에 바베큐상인이있습니다..... 여기서 저는 닭꼬치 한개를 먹었는데 50페소였고 후불 결제 가능합니다.


국립공원일텐데 이렇게 불피우고 고기를 굽는다는게 저로써는 이해가 안갔지만~~ 맛있게 먹었습니다.





ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 최고 15미터에서 최저 3미터 정도의 점핑 스팟들이 있습니다. 진짜 동영상으로 보면 안높아 보이는데 실제로 보면 개높아요 ㅋㅋㅋㅋㅋㅋㅋ 하지만 어짜피 안죽는다는 생각하나로 다뛰었는데 아직도 그 스릴이 잊혀지지 않네요


캐녀닝이 끝나고 다시 샵으로 돌아와서 조금 쉬다가 운전수 분께 출발하자고 했습니다. 목적지는 제가 원하는곳 어디든 ok입니다. 그래서 바베큐집으로 갔죠



돼지고기 위주로 시켰습니다 튀긴족발같은 것과 돼지고기 바베큐 그리고 삽겹살 볶음 등이 있었는데요 역시나 JMT.................. 실망한 적이 없네요 사진에는 없는데 망고주스 2개랑 파인애플,망고 쉐이크 각 1개씩 시켰습니다.


밥먹고 나니 시간이 7시30분정도 였습니다. 비행기가 밤 11시여서 시간이 굉장히 많이 남았는데요 스파나 마사지를 받으려고 했지만 예약이 다 차서  ... ㅂㄷㅂㄷㅂㄷ... 바로 공항으로 가서 기념품좀 사고 환전하고 술먹고 쉬다가 한국에 도착하였습니다!!!


진짜 이번여행은 경비도 크게 안들었고 재밌었습니다. 여러분도 세부에 놀러가세요

# 파이썬 문자열 함수



안녕하세요 코드사기꾼입니다.

저번 강의에 이어서 오늘은 문자열 클래스의 함수에 관하여 알아보도록 하겠습니다.

문자열 클래스란, 따옴표로 감쌓여 있는 값을 의미하며 통상적으로 str이라고 표현합니다. python에서는 강력한 기능의 문자열 함수를 제공하고 있는데요 한번 그 것들에 관하여 알아보도록 하겠습니다.


1. 접근방법


문자열 클래스의 함수에 접근하기 위해서는 먼저 문자열 객체가 있어야겠죠? python은 모든 것을 객체로 인식하기 때문에 문자열 변수나 상수도 객체로 인식합니다. 객체 내부에 있는 함수에 접근하기 위해서는 점(.)을 사용하여 접근합니다.

즉, 객체 내부에있는 함수나 변수에 대한 접근은 객체.함수, 객체.변수로 표현됩니다.


예를 들어 python이라는 클래스에 short이라는 함수가 있다면 이와같이 접근할 수 있습니다.


1
2
myClass = python() # python클래스 객체의 선언
myClass.short() # 객체 내부의 함수에  
cs

 

class를 만들어 놓았으면 먼저 그 클래스를 담는 객체를 선언을 해야겠죠? 그것을 myClass라는 임의의 이름을 가진 변수에 할당합니다. 이렇게 되면 myClass는 python의 인스턴스이니 내부에 있는 변수나 함수에 접근하는 것이 가능해지겠죠? 그래서 myClass.short()라는 구문이 성립하게 되는 것입니다.


문자열클래스도 똑같습니다. 문자열.함수이름 으로 접근하시면 됩니다. 실제 코드를 보면서 이해를 해보도록 하죠.


1
2
3
4
5
6
7
8
9
10
11
myStr = "I love python" # 문자열 선언
 
print(myStr.upper()) # 문자열 클래스의 upper 메소드 사용
 
print("I love python".upper()) # 문자열 클래스의 upper 메소드 사용
 
 
#결과값
 
I LOVE PYTHON
I LOVE PYTHON
cs


1번 라인에 I love python이라는 문자열 변수 myStr을 선언하였습니다. 그렇다면 myStr은 문자열 클래스의 인스턴스나 다름없겠죠? 그렇기 때문에 upper라는 문자열 클래스의 메소드를 사용할 수 있는 것 입니다.(upper는 소문자를 대문자로 변경해주는 메소드입니다.)


5번라인에 보면 I love python을 변수에 할당하지않고 그냥 .upper를 붙여서 사용했는데요, 이 방법 또한 사용 가능합니다. 결과는 보시는 것과 같이 I LOVE PYTHON으로 동일합니다.




# 문자열 함수의 종류


python에는 강력한 성능의 문자열 함수가 다수 포함되어 있습니다. 그것들에 관하여 한번 알아보도록 하죠.


1. find


find 함수는 검색문자나 문자열이 처음나온 위치를 반환하는 함수입니다. 만약 검색한 대상이 문자열에 존재하지 않을 경우 -1을 리턴합니다.


1
2
3
4
5
6
7
8
9
10
"abc".find("a")
"abc".find("ab")
"abc".find("bc")
"abc".find("d")
 
# 결과값
0
0
1
-1
cs



2. join


join 함수는 인자로 받은 문자열으 각 문자사이에 문자열을 삽입하는 함수입니다. 예를 들어 Rekt라는 문자열에 /을 삽입하면 R/e/k/t가 되는 것이죠.


1
2
3
4
"/".join("Rekt")
 
# 결과값
"R/e/k/t"
cs



3. upper & lower


upper는 소문자를 대문자로 변경해주는 함수이며 lower는 대문자를 소문자로 변환합니다.


1
2
3
4
5
6
7
"life is short you need python".upper()
"LIFE IS SHORT YOU NEED PYTHON".lower()
 
# 결과값
 
"LIFE IS SHORT YOU NEED PYTHON"
"life is short you need python"
cs



4. replace


기존 문자열을 원하는 새 문자열로 치환해주는 함수입니다. 문자열에서 일괄적으로 수정할 내용이 있을 경우에 유용하게 사용됩니다.


1
2
3
4
5
"my name is rekt77".replace("rekt77","python")
 
# 결과값
 
"my name is python"
cs



5. split


구분자를 기준으로 문자열을 나눠 리스트로 반환하는 함수입니다. 여기서 리스트라는 것은 python에서 배열같은 자료구조입니다.

제가 생각하기에 가장 많이 쓰는 문자열함수 top 3 에 들어갈것 같습니다. 정말 기능자체가 너무 강력합니다.


1
2
3
4
5
6
"hello python".split()
"010-7607-4401".split("-")
 
# 결과값
["hello","python"]
["010","7607","4401"]
cs


1번 라인에는 아무인자를 넣어주지 않았는데 공백을 기준으로 문자열이 잘린 것을 볼 수 있습니다. 그 이유는 split의 기본 인자가 공백이기 때문입니다. 따라서 공백을 기준으로 나눌 때에는 아무 것도 넣어주시지 않으셔도 무방합니다.



6. count


count함수는 인자로 입력받은 문자열이 문자열내에 몇번 출현하는지 숫자로 반환해주는 함수입니다. 예를 들어 어떤 기사에서 아이언맨이란 단어가 몇 번 출현하였는지 궁금할때에는 기사.count("아이언맨") 하시면 되겠죠? 


1
2
3
4
5
6
7
8
9
10
article = """
The US Military Is Chopping Up Its Iron Man Suit For Parts
It’s no wonder Stan Lee had to invent a power-source that defied
the laws of physics to make Iron Man feasible even as a comic-book.
"""
 
article.count("Iron Man")
 
# 결과값
2
cs


7. startswith


startswith 함수는 어떤 문자열이 특정 단어로 시작하는지 체크할 때 쓰이는 함수입니다. 예를 들어 a로 시작하는 단어만을 검사하고 싶을 때가 있죠? 이런 경우에 사용하면 굉장히 유용한 함수입니다. 결과값은 참/거짓으로 리턴됩니다.


1
2
3
4
"apple".startswith("a")
 
# 결과값
True
cs


'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열  (0) 2019.02.07
[python] 기본자료형 - 숫자  (0) 2019.02.07
[python] 파이썬 설치하기  (0) 2019.02.07

# 파이썬 문자열



python에서 String은 문자나 단어 등으로 구성된 문자들의 집합을 의미합니다. "Hello world", "123456789", "hi" 등이 해당 될 것 입니다. 파이썬에서는 문자열을 큰따옴표("")로 감싸서 표현하는데요 단어, 문자 뿐만 아니라 숫자도 따옴표로 둘러 쌓여 있다면, 모두 문자열로 인식합니다.


파이썬에서 문자열 변수를 선언하는 방법은 다양합니다. 크게 4가지로 분류할 수 있는데요 방법은 아래와 같습니다.



1. 따옴표(quotation)


사실 큰 따옴표나 작은 따옴표나 문자열로 인식하기는 매한가지 입니다. 하지만 문자열안에 큰 따옴표가 있는경우는 어떨까요? 예를 들어 He said "Its time to go". 라는 문자열이 있다고 가정해 봅시다. 파이썬에서 문자열 변수로 저장하려면 아래와 같이 입력해야 겠죠?


1
2
str1 = "He said "Its time to go"."
 
cs



하지만 이런식으로 정의한 변수가 올바르게 작동할 까요? 아마 Syntax에러를 내보내며 고치라고 하겠죠?


이런경우에는 작은 따옴표를 사용하면 문제를 해결할 수 있습니다.

1
2
str1 = 'He said "Its time to go".'
 
cs


  이번에는 문자열로 잘 인식하는 것을 볼 수 있습니다. 이렇듯이 일반적인 상황이라면 문자열을 선언 할 때 작은 따옴표나 큰 따옴표의 여부가 전혀 상관없지만, 문장안에 작은 따옴표가 있는경우라면 큰 따옴표로 선언을, 큰 따옴표가 있는경우라면 작은 따옴표로 선언을 하시면 됩니다.


2. 따옴표 3개


따옴표 3개는 파이썬에서 긴 문자열을 선언할 때 사용하는 방법인데요, 소설 책 1페이지를 문자열 변수에 담는다고 생각해 봅시다. 에러가 나거나 인식이 안되는 경우가 발생할 것입니다. 이런경우 큰 따옴표나 작은 따옴표 3개를 사용하여 문자열을 감싸주면 정확하게 인식이 됩니다.


1
2
quotes = """I don't believe that if you do good, good things will happen. Everything is completely accidental and random. Sometimes bad things happen to very good people and sometimes good things happen to bad people. But at least if you try to do good things, then you're spending your time doing something worthwhile
Read more at: https://www.brainyquote.com/quotes/helen_mirren_534603?src=t_random"""
cs





# 문자열 변수의 입력과 연산


문자열 변수를 사용하기 위하여 변수를 선언하는 방법도 있지만, 외부에서 입력을 받아오는 방법이 존재합니다.

그를 위해서 python에서는 input이라는 내장함수를 지원하는데요,

input 함수를 사용하면 키보드를 통하여 문자열을 입력받을 수 있습니다. input함수의 인자 값으로 들어가는 문자열은 입력전에 화면에 표시할 문자열입니다.


1
2
3
str1 = input("prompt>>")
print(str1)
 
cs



위 사진은 코드에대한 결과 값입니다.

input의 인자로 prompt>>를 주었더니 화면에 표시가 되었습니다. 그리고 나서 제가 코드사기꾼은 사실 좋은 사람이야를 입력하였더니 이 값이 str1이라는 변수에 저장되어 화면에 출력되었죠?


또한 Python에서는 다른 언어와 달리 문자열을 이용해 더하거나 곱하기를 할 수있는 특징이 있습니다.

예를 들어 "="를 50번 출력하고 싶을시에 간단히 "="*50을 해주면 됩니다. 문자열끼리 연결하고 싶은때에는 +연산자를 사용해 "문자열 변수+ 문자열 변수" 가 가능합니다. 한번 확인해 볼까요?


1
2
print("="*50)
print("코드"+"사기꾼")
cs







# 문자열 인덱싱 & 슬라이싱


파이썬에는 인덱스로 접근할 수 있는 특별한 자료형이 있는데요 이를 우리는 시퀀스 자료형이라고 부릅니다. 시퀀스란 무슨 뜻일까요? 연속된 하나의 설정을 의미하는 단어 입니다. 즉 어떤 것의 연속이란 뜻으로 받아들이시면 됩니다.


문자열은 문자의 연속입니다. I love you라는 문장을 위해서는 I,l,o,v,e,y,o,u가 필요 합니다. 그럼 이를 순서대로 색인 할 수 있겠죠? 이렇듯 파이썬에서는 문자 하나하나를 인덱스로 받아들이고 이를 인덱스를 기준으로 접근할 수 있는방법인 인덱싱과 인덱스를 기준으로 자르고, 나눌 수 있는 슬라이싱이라는 것을 지원합니다. 모든 시퀀스 자료형에는 이 방법을 사용할 수 있습니다.


C언어에서 문자열을 생각해 봅시다.  char* str = "Hello world" 라는 문자열이 있을 경우에 분명히 각 문자에 인덱스로 접근이 가능했습니다. python도 마찬가지 입니다. 각 문자열의 시작 문자를 0번 인덱스로 지정하고 접근할 수 있습니다.



1
2
str = "Rekt77 is nothing."
print(str[0]+str[1]+str[2]+str[3])
cs


인덱싱의 결과입니다. 0번째, 1번째, 2번째, 3번째 문자열을 골라 서로 더했습니다. 각각이 R,e,k,t 이기 때문에 합치면 Rekt가 되겠죠? 제대로 동작했습니다.


이번에는 인덱스를 이용해서 문자열을 나누고, 잘라보도록 해겠습니다. 이것을 슬라이싱이라고 하는데요 슬라이싱에는 몇가지 규칙이 있습니다.


1. [이상:]


명시한 인덱스 이상의 인덱스만을 표현하고 싶을 때 사용하는 방법입니다. [2:]를 사용한다면 2번째 인덱스 이상의 요소를 전부 출력하겠죠 ?





2. [:미만]


명시한 인덱스 미만의 인덱스만을 표현하고 싶을 때 사용하는 방법입니다. [:2]를 사용한다면 2번째 인덱스 미만의 요소를 전부 출력하여 결과값은 Re가 나올 것 입니다.





3. [이상:미만]


범위를 명시하여 문자열을 나누고 싶을 때 사용하는 방법입니다. [2:7]를 사용한다면 2번째 인덱스 이상, 7번째 인덱스 미만의 요소를 전부 출력하여 결과값은 kt77가 나올 것 입니다.





4. [이상:미만:스텝]


이 부분은 많은 분들이 잘 모르시는 내용인데요 슬라이싱에는 콜론을 두 개까지 사용할 수 있습니다. 콜론을 한개 더 사용하게 되면 스텝을 넣어 슬라이싱을 할 수 있는데요 스텝에 2를 넣는다면 해당 인덱스가 2의 배수이면, 출력이 됩니다. 범위를 2이상 15미만으로 설정을 하였기 때문에 그 안에서만 스텝이 적용됩니다.




'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열 함수  (0) 2019.02.09
[python] 기본자료형 - 숫자  (0) 2019.02.07
[python] 파이썬 설치하기  (0) 2019.02.07

# 파이썬 기본자료형



먼저 Python의 자료형에 관하여 알아보겠습니다. 자료형이란 프로그래밍시 사용되는 모든 자료 형태입니다. Python에는 기본적으로 숫자, 문자열, 리스트, 딕셔너리, 튜플, Bool 그리고 Set의 자료형이 존재하는데요, 타언어에서는 변수를 선언할 때 int num, String alpha 등 처럼 자료형을 명시해줘야함과 다르게 Python은 변수 선언시 자료형을 명시하지 않아도 되는 특징을 갖고 있습니다. 


a = 123

b = "Hello Python"


즉, 위와 같이 입력해도 python은 찰떡같이 알아먹습니다. qutation("")으로 감싸여진 것은 str, 일반 숫자로 쓰여 있는것은 int형으로 인식합니다. 변수를 선언함과 동시에 자료형을 입력해주지 않아도 되는 편리함 때문에 문법이 더욱 간결해집니다.


하지만 이것은 무조건 좋은 것만은 아닙니다. 요즘 3.7버전의 python에서는 type hint 라는것이 등장했는데요 함수의 인자 값으로 들어갈 형을 지정해 주는 것입니다. 기존의 python은 함수의 인자에 자료형을 명시해 주지않아 가독성이 떨어지는 경향이 있었습니다. 이는 사용자의 불편함을 초래하였고 이를 해결하려는 노력이 지속되고 있습니다.


그렇기 때문에 변수를 선언할 때에는 변수 이름만 봐도 어떤 것인지 알게끔하는 능력이 정말 중요합니다.




# 숫자


Python에서 숫자란 1, 2, 3, -3 과 같이 정수와, 1.45, 0.11과 같이 실수로 표현되는 수를 의미합니다. 추가적으로 기수 체계가 다른 16진수, 8진수, 2진수도 인식합니다.


 자료형

 선언방법

 정수형

 num = 123

 실수형

 num = 1.45

 16진수

 num = 0x0d

 8진수

 num = 0o07

 2진수

 num = 0b1010


먼저 정수, 16진수, 8진수, 2진수 형태로 변수를 선언하면 python내에서 해당 변수의 자료형을 int로 인식합니다. 즉 0x0d를 입력한다고 해서 0x0d가 저장되는 것이 아니라, 0x0d의 10진수값인 13이 변수에 저장되는 것이죠.


하지만 실수형으로 변수를 선언하였다면 해당 변수의 자료형은 float형이 됩니다. 한 번 확인해 볼까요?



1
2
3
4
5
6
7
8
9
10
11
12
13
14
num = 123
print(type(num))
 
num = 1.45
print(type(num))
 
num = 0x0d
print(type(num))
 
num = 0o07
print(type(num))
 
num = 0b1010
print(type(num))
cs


type()함수는 해당 변수의 자료형을 확인하는 내장함수입니다.



해당 코드를 실행한 결과값 입니다. 제가 말한 대로 실수형을 제외한 모든것은 int형으로 저장이 되었죠?




# 연산자


컴퓨터는 성능좋은 계산기입니다. 그렇다면 당연히 우리는 컴퓨터로부터 수학적인 계산능력을 끌어와 이용해야 할 것입니다. 다른 언어를 배우고 오신 분들이라면 다른언어에는 연산자라는게 있다는 것을 이미 알고 계실 겁니다. 당연히 Python도 타 언어와 동일하게 계산 연산자가 존재합니다. 사칙연산뿐만아니라, 제곱연산자 등 편리한 연산자들이 있습니다.


 연산자

설명

 +

더하기 연산자 

 -

 빼기 연산자

 *

 곱하기 연산자

 /

 나누기 연산자(소수점 반환, 자동 형변환, 3버전기준)

 **

 제곱 연산자

 //

 나눗셈 후 몫 반환

 %

 나눗셈 후 나머지 반환


그렇다면 이번에는 위의 연산자를 이용하여 실제로 변수의 값들을 연산해 보도록 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
num1 = 10
num2 = 4
 
print(num1+num2)
print(num1-num2)
print(num1*num2)
print(num1/num2)
print(num1**num2)
print(num1//num2)
print(num1%num2)
 
cs



결과 값입니다. 제대로 값이 나오는 것을 확인 할 수 있죠? 그런데 말입니다 정수끼리 나눗셈을 했을때 실수가 나오는 것에대해서 어떤 생각이 드시나요? C언어에서는 정수끼리의 연산을 진행해서 실수가 나오게 하려면 강제 형변환(type casting)을 진행해줘야 했는데요 python은 자동으로 형을 변환해 줍니다. 한번 확인해 볼까요?


1
2
3
4
5
num1 = 10
num2 = 4
 
print(type(num1/num2))
 
cs



결과 값입니다. float형으로 변환되었죠? 이와 같이 파이썬에서는 나눗셈을 시도할 때 강제적인 형변환이 따로 필요하지 않습니다. 정말 간단하지 않나요?





'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열 함수  (0) 2019.02.09
[python] 문자열  (0) 2019.02.07
[python] 파이썬 설치하기  (0) 2019.02.07

# 파이썬 설치하기




안녕하십니까 코드사기꾼입니다. 



요즘 개발인력시장에서 Python에 대한 수요가 많아진 만큼 이제부터 Python 강의를 업로드해볼까 합니다. 


Python이란 귀도 반 로섬(Guido Van Rossum)이 개발한 인터프리터 언어이며, 문법이 쉬워 빠르게 배울 수 있는 특징이 있습니다.


간결한 문법과 거대한 오픈소스 생태계 때문에 개발 속도가 정말 빨라서 C언어를 주언어로 사용하던 저한테는 특히나 매력적으로 다가 왔는데요, C언어로 개발했을때의 퍼포먼스는 나오지 않지만 Python으로 개발했을 때의 개발시간과의 등가교환에는 상당히 만족하고 있습니다.


자 그럼 이제부터 Python을 설치해보도록 하겠습니다.



# python.org



링크>>> python.org


링크에 접속해서 Download를 클릭하면 아래와 같은 화면이 출력됩니다.






정말 많은 종류의 python이 있네요! 몇년 이내에 버전 2 python은 지원 종료 되기 때문에 처음 접하시는 분이라면 버전 3 python을 추천합니다. 하지만 버전 2도 레가시 버전으로 의미가 있습니다. 제가 이 글을 작성할 때 기준으로 가장 최신버전은 python 3.6.3이었습니다. 여러분들이 설치를 진행하 실 때 가장 최신 버전을 설치하시면 됩니다.


하지만 여전히 많은 라이브러리가 2점대를 지원하고 있기 때문에 특정 버전이 필요한 것이라면 그 버전을 받으시는것이 중요합니다. 


파이썬은 버전2에서 3으로 넘어오면서 꽤 큰 변화를 겪었는데요 그것에 대해서 잘 정리해 놓은 블로그가 있어 링크를 첨부합니다. ^^


링크 >>> http://www.w3big.com/ko/python/python-2x-3x.html






버전을 선택하였으면 본인이 운용하고 있는 OS, 설치파일 형태 등을 선택해야 하는데요 저는 윈도우즈를 운용하고 있고 실행파일 형태의 설치파일을 원하기 때문에 x86-64 executable installer를 선택하였습니다.




파일이 다운로드가 완료되면 실행 시키시면 됩니다.

위 그림은 실행시켰을 나타나는 첫 화면인데요, Add Python 3.6 to PATH와 Install launcher for all users를 둘다 선택하고 설치를 진행해 줍니다.

Add Python 3.6 to PATH는 정말 중요한 옵션인데요 시스템 환경변수와 관련된 옵션입니다. 


환경변수라는것은 커맨드라인 프롬프트(CMD)에 특정 명령어를 입력하였을때 실행할 파일을 매핑시켜주는 변수입니다. CMD에 python이라는 명령어를 입력했을 때 원래라면 아무것도 실행되어야 하지 않는데 Add Python 3.6 o PATH를 활성화하면 환경변수에 Python 실행파일의 경로가 저장되어 CMD가 인식하여 Python 인터프리터를 실행시켜 줍니다.





Install for all users 옵션을 선택하면 현재 로그온 되어 있는 계정외에 모든 계정에서 python을 실행할 수 있습니다. 추가적으로 필자는 사용자 하위 폴더에 python폴더가 생성되는 것 보다 C드라이브 하위에 생기는 것을 선호하기 때문에 설치 폴더를 변경하였지만, 내버려둬도 무방합니다.


통상적으로 python 설치 폴더는 버전 2번째 자리까지 나타내는데요 3.6.3이면 36으로 3.7.1은 37로 표현합니다. 저는 3.6.3을 다운받았기 때문에 Python36이라는 폴더를 설치폴더로 결정하였습니다.




자 여기까지 오셨다면 설치가 완료된 것입니다. Close 버튼을 누르고 설치가 완벽하게 되었는지 확인해 보도록 하겠습니다.

CMD 창을 열고 python을 입력해 봅니다.




정상적으로 실행이 되셨다면 아래의 코드를 입력해보고 마무리 해보도록 하겠습니다.



1
print("Hello World")
cs


Hello Wolrd가 출력된 것을 확인하셨나요? 정상적으로 출력되면 설치가 제대로 된 것입니다.


'Dev > python' 카테고리의 다른 글

[python] 리스트 함수  (0) 2019.02.11
[python] 리스트와 Shallow Copy  (0) 2019.02.10
[python] 문자열 함수  (0) 2019.02.09
[python] 문자열  (0) 2019.02.07
[python] 기본자료형 - 숫자  (0) 2019.02.07

# 오프라인 지도





해외여행을 준비중이라면 데이터가 활성화 되지 않는 상황에 맞닥드리기 마련이다. 이런 상황에 대비하기위해 오프라인에서도 운용할 수 있는 지도를 사전에 다운로드 받아가는데, 지금부터 그 방법과 어플에 관하여 소개하도록 하겠다.



1. Google Maps


해외에서는 말그대로 '갓'인 구글 형님이 개발하신 지도다. 온라인지도는 기본적으로 지원하며, 길찾기 성능이 타 지도에비해 발군이다. 하지만 구글 형님께서는 데이터가 활성화 되지 않는 지역에 대한 오프라인 지도도 간과하지 않으셨다. 실시간 교통정보를 제외한 모든 경로를 사전에 다운받아서 길찾기에 활용할 수 있다.


또한 오프라인 상황에서도 GPS를 이용할 수 있다는점 꼭 기억해 두길 바란다. GPS는 위성을 이용한 통신으로 데이터가 없는 상황에서도 오프라인 지도만 있으면 나의 정확한 위치를 알 수 있다.


지금부터는 구글지도에서 어떻게 오프라인 지도를 다운받을 수 있는지 그 방법에 대하여 설명한다.




구글지도에 접속해서 가장 왼쪽 상단 햄버거 버튼을 클릭하면 좌측 슬라이드 메뉴가 가시화 된다.





메뉴를 보면 오프라인 지도라는것이 있다. 클릭해본다.




처음에 이 창에 들어왔다면 저기 보이는 지도들은 당연히 없을 것이다. 왜냐면 저건 내가 실제로 다운 받은 것들이니까 ㅎㅎ

새로 오프라인 지도를 만들고 싶다면 '나만의 지도 선택'을 누른다





여기서는 터치및 손가락을 밀어서 원하는 구역의 지도를 다운받으면된다.  나는 샌프란시스코 -> 로스앤젤레스 -> 라스베이거스로 떠나는 일정을 계획하였기 때문에 해당 구역의 지도들을 다운받았다.

오프라인 지도는 확대 정도를 최소로 줄였을때를 기준으로 200MB에서 500MB정도까지의 용량을 차지한다.




2. Maps.ME


구글 지도처럼 일일히 구역들의 지도를 받는것이 귀찮다면 다른어플리케이션을 이용하는 방법도 있다. 물론 용량은 조금더 많이 차지한다.


Maps.ME 지도는 위키피디아지도 API를 이용하여 사람들이 길을 지우고 길을 만들수 있다. 그렇기 때문에 구글에 비해 공신력은 낮으나 일부지역에서는 훨씬 정보가 유용할 수 있다. 게다가 대륙별로 지도를 다운받고, 좀더 큰 지역의 지도를 다운받아야 할때에는 구글 지도보다 나은 성능을 보인다. 용량은 미국 기준 4.5GB정도





안드로이드 및 아이폰 앱스토어에서 다운받을 수 있으며 사용하는 사람이 정말 많다. 여행을 계획중이라면 사전에 지도를 다운받아 가는 것을 권장한다.


# USIM 구매하기


해외여행을 하는데에 있어서 호텔에서만 와이파이를 쓸 수 있다면 얼마나 답답할까? 한국에 있는 나의 가족, 친구들에게 실시간으로 상황을 알리지도 못하고 인스타 업데이트도 굉장히 제한적으로만 할 수 있는 고물덩어리....(?)라고 느낄지도 모른다.


그렇기 때문에 해외여행을 하는 많은 여행객들이 현지 USIM을 한국에서 구매해서(인천공항 수령) 현지에서 사용한다. 이 방법이 가장 저렴하고 간단하기 때문이다.


먼저 USIM을 구매하기에 앞서서 미국여행을 준비한다면, 미국에 어떤 통신사가 있는지를 알아보아야 한다. 한국에 KT, SKT, LG U+ 각 통신사 만의 매력과 장,단점이 있는 것과 같이 미국의 통신사 또한 일맥상통하다. 





자 미국의 대표적인 통신사는 버라이존, at&t, 티모바일 그리고 스프린트가 있다. 솔직히 스프린트는 뭐 걸러도 상관없다.

각 통신사에 관하여 간단하게 알아보도록 하자.


1. verizon


한국의 SKT 포지션에 있는것은 버라이존이다. 2G때 부터 강력한 통신망이 구축되어 있어 미국현지인들이 가장선호하는 통신사다. 그런데 버라이존의 유심은 찾으면 나오기는 하는데 가격이 조금 센것 같다.. 무제한 기준 약 91,000원



2. at&t


한국에서는 at&t를 더 많이 들어본것 같다. 2009년도에 미국에 머무를 때에는 at&t보다는 verizon이 확실히 인기가 많았다.(캘리포니아기준) 그런데 요즘 점유율을 보니까 큰차이는 없는것 같다. 가격 역시나 버라이존과 큰차이가 없다.



3. T-Mobile


천조국의 LG U+ 이번 여행에서는 T 모바일 30일 데이터 무제한을 구매했는데 한국돈 67,000원 정도였다. 근데 실제로 써보니까 큰 불편함은 없었다. 근데 요세미티, 그리피스 천문대에서는 안되더라...... 왜지?


결국 통신사별 개성이라고 해봐야 비싸고 빠른거, 혹은 덜 비싸지만 덜 빠른거 둘 중하나다.

나는 덜 비싸지만 덜 빠른것을 선택했다. 






이 글을 쓰면서 혹시 몰라 팩트체크용으로 위 사진을 들고 왔다. verizion은 여전히 미국내에서 가장 빠른 인터넷을 제공한다. 근데 의외로 T-Mobile의 평판이 괜찮은 것 같다. at&t사서 흑우되지 말고 돈없으면 T모바일 돈많으면 버라이존을 구매하도록 하자.


 



미국 USIM을 키워드로한 네이버 쇼핑 검색결과다. 127,864개의 엄청난 선택지가 있으니 가장 싼 걸로 사면 된다. 이동전화 기종별로 USIM의 크기는 거의 동일하니 특별히 체크하라고 하는 항목이 있는게 아니면 대부분 호환 가능하다(아이폰, 갤럭시)






한국 구매 공항 수령USIM은 현지 도착후 직접 장착해야하는 단점(?)이 있다 최소 클립은 있어야 장착가능하니까 공항에서 수령할 때 USIM핀이 없으면 클립이 있는지 꼭꼭꼭! 확인해야한다. USIM은 핸드폰 가장 위 부분 구멍에 핀을 넣어 뽑으면 교체할 수 있다.


USIM은 카드형태로 나오는데 절단위치가 2군데가 있다. 먼저 사진에 1번이라고 해놓은 부분인데 저기를 먼저 떼야 편하다. 나는 바보같이 1번만 떼면 그냥 들어가는건줄 알았다. 하지만 1번을 떼고 나서 2번 절단선을 따라 떼줘야 비로소 장착가능해진다. 나같은 바보짓은 하지 마시길..





# 현지전화번호 확인방법




동남아, 유럽, 미국 할 것 없이 현지에서 필히 사용해야되는 앱들이 있다. GRAB이나 UBER같은. 이런 앱들의 공통점은 계정을 등록해야한다는 건데 이 경우 문자로 인증번호가 오는 경우가 있다. 여기에 백날 한국전화번호를 넣어봐야 문자가 오지 않는다. 이 부분을 정상적으로 처리하려면 인증 전화번호에 현지 USIM을 장착한 나의 전화번호를 넣어줘야하는데 스마트폰별로 확인 방법이 다르다.



1. 안드로이드(갤럭시, LG v시리즈)


설정 > 휴대전화 정보 > 내 전화번호 확인





2. 아이폰


설정 > 전화 > 나의 전화번호 확인





해외에서 문자로 인증번호를 받아야 하는 경우라면 저기 적혀있는 번호를 넣으면 내 핸드폰으로 인증번호가 정확하게 전달될 것이다.



# 미국 자동차 렌트


이번에 미국으로 여행을 가게되면서 대중교통보다는 자동차를 렌트해서 가면 이동이 훨씬 수월할 것 같아 자동차를 렌트하기로 했습니다. 미국에서 자동차를 렌트해주는 업체는 정말 수도 없이 많이 있습니다. 하지만 현재 나이가 만25살 이하라면, 업체선정에 있어서 반드시 고려해보셔야할 사항이 있습니다.


1. young driver fee


young driver fee란 만 25세 이하 운전자에게 부과되는 요금으로 업체마다 가격이 다르지만 대충 하루에 $14에서 $35까지 부과됩니다. 렌트 기간이 길면 배만큼 배꼽이 큰 요금이죠.

그럼 실제로 유명 렌트카 업체 Hertz에 들어가서 가격을 확인해 볼까요?

www.hertz.com에서 수령 위치는 샌프란시스코, 날짜는 임의로 2019/03/01 ~ 2019/04/01까지 한달로 설정하였습니다.






검색결과입니다. 생각보다 값이 싸네요?? 말리부는 747불 밖에 안하고 jeep 체로키는 895불입니다. 한달에 이정도 가격이면 누가 대중교통이나 우버를 타고 여행을 합니까? 당장 예약해야죠 한번 클릭하고 상세사항을 확인해 보겠습니다.







세금포함 가격이 $2068.86이네요 ㅎㄷㄷㄷㄷ..... 세금중에서도 가장많음 금액을 차지하고 있는게 Age Differential인데 저게 바로 young driver fee입니다. $837불이라는게 말이 안되죠? 하루에 27불씩 추가적인 세금 납부하는 셈입니다.

나이가 어릴수록 돈이 없는데 더 많은 세금을 지불해야 된다는게 아이러니 하죠?


24살인분들은 억울하시겠지만, 방법이 없는것은 아닙니다. 업체중에서 young driver fee를 면제해주는 렌탈프로그램을 진행하는 곳이있는데요 바로 Alamo 입니다.


www.alamo.co.kr에 접속해서 아까랑 같은 조건으로 검색해보겠습니다.




alamo에는 영드라이버 할인요금이라는게 있습니다. 말그대로 young driver fee를 말도 안되게 깎아주는 패키지입니다. 다른 업체에서도 이런 패키지가 있는지모르겠는데 alamo에서만 봤습니다.


그런데 기본 할인 요금이 영드라이버 할인요금보다 싸다고요 ? 들어가 보겠습니다.




가격이 ㅋㅋㅋㅋㅋㅋㅋ $2743입니다. 거의 여행예산의 절반일 수도 있는 금액이네요 기본으로 했더니 여전히 YOUNG RENTER FEE가 잡혀있는 것을 볼수 있죠? 이번에는 영드라이버 할인요금으로 예약해보도록 하겠습니다. 




보험은 똑같이 적용되는데 가격은 $1483으로 천불정도 쌉니다. 나이가 애매한데 돈은 부족하실때 Alamo에서 예약하시면, 대인/대물 보험, 운전자 보험 등등 여러가지 보험이 적용됨과 함께 young driver fee까지 할인 받을 수 있습니다.


실제로 샌프란시스코 공항에서 1월 25일 정오에 차를 수령했는데 적혀있는 금액 그대로 였습니다.


추가적으로 렌트하실때 체크카드 사용시에는 렌트금액의 2배에서 3배 이상의 금액이 통장에 예치되어 있어야합니다. 어떤 이유인지는 모르겠으나, 알라모 공식 서비스센터에서 전달받은 내용입니다. 게다가 체크카드로는 프리미엄 이상급으로는 예약하는것이 불가능합니다. 프리미엄 이상급의 차를 렌트하시려면 해외결제 가능한 신용카드가 꼭, 반드시 필요합니다.


마지막으로 반납하는 도시에서 아웃하는 비행기표를 현지에서 요구할 수 있기때문에 꼭 바우쳐 챙겨 가시기 바랍니다.



# 샌프란시스코 공항에서 차량 수령


렌터카를 수령하는곳은 입국 게이트에서 모노레일을 타고 2~3 정거장 이동해야 합니다.

샌프란시스코 공항에 도착하면 터미널 G게이트에서 우측으로 쭈욱 올라가면 에스컬레이터가 있습니다. 에스컬레이터를 타고 가장 위층으로 올라가시면 모노레일 플랫폼이 있는데 여기서 BLUE라인을 이용하여 Rental car center로 이동하시면 됩니다.



Rental Car Center에서 내려서 렌트업체로 찾아가시면 직원이 알아서 결제 및 차량수령을 도와줄겁니다.

아 그리고 무조건 웹사이트에서 선택한 차종으로 수령할 수 있는것은 아니고 비슷한 급으로 나옵니다. 예를들어 중형이면 닛산 알티마, 현대 엘란트라, 말리부 이런 차들로 주차장에서 선택을 할 수 있습니다.


감사합니다.^^

이 글은 2019/01/25 부터 2019/02/25 까지의 여행에서 겪거나 들었던 사실만을 적은 글입니다.



#미국 여행


이번에 기회가 되어서 한달동안 친구와 함께 미국 자동차 여행을 계획하여 다녀오게 되었다. 처음가보는 미국은 아니지만, 내가 다녀왔을 당시에는 나 말고 다른 어른들이 준비를 많이 해주셨기 때문에 미국여행에 관한 지식이 없는 상태였다.(esta, 렌터카 등등)


미국여행에 앞서서 준비해야할 것들을 알아보도록 하자. 나는 한국에서 이것들을 미리 준비해서 왔기 때문에 입국심사를 통과하고 렌터카를 수령하는 것 까지 전혀 문제가 없었다.



1. ESTA


미국 여행에 있어 필수가 된 ESTA(Eletronic System for Travel Authorization). 한국말로는 전자 여행허가 시스템이다. 한국의 여권을 통해서 무비자로 다녀올 수 있는는 국가는 아래 사진에 초록색으로 표시된 국가들이다.


[각주:1]


사진에서 확인 가능하듯이 한국여권 소지자는 미국도 무비자 입국이 90일 동안 가능하다. 대신 사전에 여행허가를 받아야 하는데 전산상에서 여행허가를받는 것을 ESTA라고 한다.


ESTA는 아래 사이트에 들어가면 신청할 수 있다.

링크: https://esta.cbp.dhs.gov/esta/





먼저 신청 사이트에 들어가서 한국어로 언어를 변경한다. 그러면 꽤 번역이 잘된 사이트가 나온다.

나는 친구와 함께 가지만 바보 같이 그룹신청이 아닌 따로따로 개인신청을 하였다. 그룹신청이 개인신청보다 어떤 이점이 있는지는 잘 모르겠다. 하지만 일을 두번 했다는거...


결론은 앞으로 설명할 내용은 개인신청 위주이다. 신청하기를 누른후에 개인신청서 버튼을 클릭하면 아래와 같은 화면을 보게될 것이다.







왠지모르게 웅장해보이는 글귀.

하지만 우리는 마냥 착한 여행자이기 때문에 확인 & 계속을 눌러 신청을 시도한다.




신청 가장 처음에 바로 권리 포기각서가 나온다. 내용을 읽어보면 ESTA 승인시 VISA Waiver Program을 통해 여행할 수 있는조건이 성립된다고 나온다.

정확히 100% 입국할 수 있는 것은 아니고  공항에서 입국심사를 통과해야한다. 물론 ESTA가 없는 경우보다는 훨씬빠르게 통과하겠지만 영어를 너무 못하면 시간이 걸리거나 따로 불려갈 수도 있다. 고로 기본적인 입국심사 영어정도는 알고가는게 좋다.


경고문구를 보면 ESTA신청으로 입국 후에 비이민 신분변경, 체류기간 연장, 단기체류 혹은 영주권자로 신분변경을 시도할 수 없다고 나와있다. 심지어 이러한 조건을 위반할 경우 제거로 이어진다는데 ㄷㄷㄷㄷ... 번역 실수겠지.


동의를 누르고 다음으로 넘어가면 아래와 같은 화면이 나온다.






이건 ESTA신청비에 관한것인데 일단 결론만 말하자면 ESTA를 신청하는데에는 $14이 든다. 해외결제카드가 있는지 꼭 확인하자. 예를 누르고 다음으로 넘어가자.





지금 부터 여행자의 신상에 관하여 정말 정확하게 입력하여야 한다. 여권 정보를 스캔해서 업로드하면 자동완성 기능이 되지만, 나는 그러지 않고 수기로 일일히 입력하였다.


모든 항목은 영어로 입력하되,

토씨하나라도 틀리면 입국심사에서 문제가 생길 수 있기때문에 지금부터는 정말 조심해야한다.


가장먼저 성, 이름 성별을 입력한다.





출생도시는 자신이 태어난곳, 출생국가는 태어난 국가를적고


여권에 나와있는 그대로 여권번호, 발급일, 만료일을 적는다.


대한민국 국적을 가진 시민이면 시민권은 당연히 South Korea를 선택한다.


추가적으로 나는 다른 국가에서 여권을 발급받은 적이 없기 때문에 마지막 질문에 대하여 아니오를 선택하였다.








아닌것은 아니오를 선택하고 맞느것은 예를 선택해서 항목을 입력해준다.

부모에 대한 정보를 적는 란에는 부모님의 이름을 영문으로 기재한다.







한국 거주지 주소를 묻는 란에 영어로 번역하기 쉽게해주는 사이트가 있다. (아래의 링크를 참조)

링크: www.jusoen.com


링크에 접속하여 자신의 주소를 입력하고 변환된 영문주소를 복사 붙여넣기 하면된다. 정말 쉽죠?


전화번호는 국가번호 포함 010 에서 맨앞자리 0을 제외한 10으로 시작하는 10자리의 이동전화번호를 적으면 된다.







저는 태생이 백수인 사람이기 때문에 고용주가 있었던 적이 없습니다 ㅎㅎㅎ

사실 프리랜서형태로 근무를 하기때문에 이란은 입력할 필요가 없어 그냥 아니오를 체크하고 넘어갔습니다.






이 부분에서는 호텔을 이미 예약하셨다면 호텔에 관한 정보를 입력하시면 되지만, 저는 ESTA 신청까지만 해도 호텔을 정하지 않은 상태였습니다. 그래서 그냥 UNKNOWN을 모든 곳에 때려박았습니다 ㅎㅎㅎ

전화번호는 UNKNOWN대신에 숫자 0을 넣어주셔야 합니다.




여기서도 똑같이 UNKNOWN으로 도배~






UNKNOWN을 넣어서 한번에 승인이 안된다면 그냥 여러번 다음을 누르세요. 그러면 주소확인 창이 나옵니다. 거기 체크박스에 체크를하고 다음을 누르시면 알아서 잘 넘어갑니다.








해당되는 사항이 있으면 거짓없이 예를 입력해주세요. 만에 하나 거짓이 발견될시 입국이 거절될 수 있습니다.







여기서는 인증서 부분에 체크를 하고 넘어갔습니다. 제 3자가 아닌 본인신청이었기 때문에 밑에는 공란으로 내버려 두었습니다. 만약에 제3자라면 체크해야겠죠?






여기 까지 오셨으면 검토를 해야하는데 이전에 작성했던 정보가 나옵니다. 이때 두눈을 부릅뜨고 찾아주세요 저는 여권번호가 틀려서 여기서 수정했습니다. 진짜 틀린채로 내비뒀으면 큰일났습니다.






자 검토를 끝내고 14불을 결제하시면 ESTA에 대한 신청이 완료 됩니다. 처음부터 허가승인이 나오지는 않고요 허가 보류가 나올 겁니다. 그러면 입국 72시간 전에 승인이 떨어지는 지 꼭 확인을 하셔야 합니다. 그렇지 않으면 미국 입국에 차질이 생깁니다.




  1. 출처: 위키백과 [본문으로]

+ Recent posts