스파르타 내일배움 캠프/Today I Learned

'22.05.19 Today I Learned

hyunzxn 2022. 5. 19. 20:45

<학습내용>

- GCP 인스턴스 만들고 배포하는 법

- 자바 기초 문법 : 람다, 스트림 + 제네릭 외부 무료 강의 수강

 


1. GCP 인스턴스 만들고 배포하는 법

 

오늘은 또 다른 클라우드 플랫폼인 Google Cloud Platform (GCP) 에서 VM을 만들고 거기에 프로젝트를 배포하는 법에 대해서 배웠다. 인스턴스 개념은 AWS, Azure, GCP 다 비슷비슷한 거 같다. 

 

그런데 조금 다른 점은 맥북으로 GCP에서 VM을 만들어서 파일을 업로드 하기 위해 강의에서는 브라우저 창에서 콘솔을 열어서 바로 하는 것을 알려주셨는데 이 방법으로 하니 한 가지 문제가 있었다.

 

예를 들어 디렉토리를 만들고 그 디렉토리로 이동해서 파일 업로드를 하면 내가 만든 디렉토리에 파일이 업로드가 되는 것이 아니고 최상위 디렉토리에 만들어지는 것이었다. 이렇게 하니까 flask의 디렉토리 구조대로 파일 업로드를 할 수가 없어서 서버를 실행시켰을 때 정상적으로 파일을 읽을 수 없는 에러가 생겼다. 그렇다고 파일을 업로드할 때 따로 디렉토리를 선택할 수 있는 옵션이 있는 것도 아니어서 결국엔 파일질라를 사용해서 올리는 것이 낫겠다고 결론을 내렸다.

 

그런데 이렇게 하려면 ssh로 VM에 직접 접속을 해야되는데 강의에선 맥북 사용자는 ssh 키를 만드는 방법을 안 알려주셔서 직접 구글링을 해서 찾아내서 인스턴스에 접속하는 것도 성공하고 파일질라에 파일을 업로드 하는 것도 성공했다. 

 

참고한 블로그 링크는 다음과 같다.

 

https://lifeoncloud.kr/gcp/gcp-docs/ssh-from-mac-to-vm/

 

이걸 참고하면 맥북 유저도 ssh 키를 만들어서 GCP VM을 만들어서 파일 업로드를 하고 배포를 할 수 있다. 

 

 

그리고 또 하나 GCP가 AWS, Azure와 다른 점은 인바운드 규칙과 관련된 부분이다. 업로드 하는 프로젝트가 flask 서버이다 보니 5000포트를 열어줘야 하는데 AWS나 Azure에서는 네트워크에 인바운드 규칙에서 5000포트를 열어줄 수 있었다.

 

그런데 GCP에서는 네트워크 부분이 어딨는지도 찾기가 힘들었고 인바운드 규칙 같은 것도 보이지 않았다. 그래서 이것도 역시 구글링을 해서 찾아보니 GCP에서는 포트를 열어주려면 방화벽 탭에 가서 방화벽 규칙을 추가해주면 된다는 것을 찾을 수 있었다. 

 

이걸 참고한 블로그 링크는 다음과 같다.

 

https://kibua20.tistory.com/96

 

이런 식으로 5000포트를 열어줘야지만 접속이 잘 된다. 

 

 

2. 자바 기초 문법 : 람다, 스트림  + 제네릭 외부 무료 강의 수강

 

오늘도 역시 자바 기초문법을 공부했다. 람다와 스트림에 대해서 배웠는데 람다는 뭔가 자바스크립트에서의 콜백함수 느낌이 있는 것 같고 스트림은 자바스크립트에서 자주 보던 forEach나 map, filter, reduce 같은 것들이 나와서 비슷한 것 같으면서도 또 다른 개념인 것 같기도 하면서 알쏭달쏭했다.

 

그러나 여전히 람다와 스트림에 대해서 확실하게 알게 된 것은 아니다. 무엇보다 내가 과연 프로젝트를 하며 이런 코드를 쓸 수 있을지에 대한 생각이 잘 들지 않았다. 그런데 맛보기로 들은 스프링 강의 1강에서 튜터님이 하신 말씀이 이 부분에 대한 고민을 좀 덜어줬다. 자바에 대해서 완벽하게 이해하려고 하기 보다는 일단 우선순위를 정해서 중요한 것을 먼저 배우고 하면서 모르는 것이 나오면 그 때 그 때 공부를 한다는 마인드로 접근하는게 실력 성장에 훨씬 도움이 된다는 말이었다. 

 

뭔가 예전부터 공부할 때 하나를 이해하지 못 하면 다음으로 잘 못 넘어가는 습관이 있는데 프로그래밍을 공부할 때는 버려야 할 자세인 것 같다. 애초에 프로그래밍 부분을 완벽하게 이해할 수는 없을 것이다. (스파르타의 CTO인 튜터님도 모르는 것이 많다는데 내가 다 알고 넘어간다는건 당연히 말도 안 된다) 그래서 일단 지금은 큰 개념을 익히는 것에 집중하고 스프링 강의를 들으면서 모르는 것이 나올 때 조금 더 찾아보는 식으로 하는 것도 좋을 것 같다는 생각을 하게 됐다. 그런데 지금 상태로 가는 것은 아무래도 찝찝하긴 해서 람다와 스트림에 대해선 조금만 더 공부해볼 생각이다.

 

어제 들으면서 멘붕에 빠졌던 제네릭에 대해서 이것저것 찾아보던 중 윤성우의 열혈자바 프로그래밍이란 것을 알게 됐고 무료 동영상 강의가 있다는 것도 알게 됐다. 그래서 카페에 바로 가입해서 제네릭에 대해서 강의를 조금 들었다. 어제보다 조금은 더 이해가 된 것 같다. 여전히 감은 완벽하게는 오지 않지만 어제보다는 왜 이걸 사용하고 사용하면 어떻게 되고 식의 흐름은 대략적으로 감이 왔다. 아마 이 곳에서 람다와 스트림도 조금 더 공부해보면 좋을 것 같다는 생각이 든다.

 

 

이제 아마 빠르면 내일, 늦어도 주말부터는 스프링 공부를 시작할 거 같은데 기대도 되면서 떨리기도 한다. 이제 프로젝트를 다 자바로 해야되고 스프링이 어렵다는 말이 많아서 겁이 나는 것도 사실이다. 그런데 백엔드에 대해서 아무 것도 모르고 파이썬도 아무 것도 모르는 상태에서 1차 프로젝트도 어떻게든 하긴 했으니까 이것도 부딪히면 길이 보일 거라 생각한다. 부디 잘 할 수 있으면 좋겠다.

728x90

'스파르타 내일배움 캠프 > Today I Learned' 카테고리의 다른 글

'22.05.23 Today I Learned  (0) 2022.05.23
'22.05.20 Today I Learned  (0) 2022.05.20
'22.05.18 Today I Learned  (1) 2022.05.18
'22.05.17 Today I Learned  (1) 2022.05.17
'22.05.16 Today I Learned  (1) 2022.05.16