본문 바로가기
Java

웹개발의 봄, 스프링 1주차 (+자바) [스파르타코딩클럽]

by 돈민찌 2021. 8. 12.
반응형

리액트 수업을 마치고 호기롭게 시작한 자바, 파이썬과 자바스크립트 다음으로 사랑받는(?) 언어이기도 하고, 리액트네이티브로 앱을 만들 때도 작성은 모던 자바스크립트의 언어로 리액트네이티브라는 틀에 맞게 써냈지만 마지막에 빌드할 때에는 결국 자바, 그래들 같은 것들이 숨어있다가 나타나는 모습을 보고 언젠가는 자바를 배워야 할 거라고, 배우게 될 거라고 생각해왔는데 마침 좋은 기회(미니튜터라는 좋은 기회를 주신 황선애 매니저님 압도적 감사..!!)가 생겨 자바 스프링 강의를 스파르타코딩클럽을 통해 들을 수 있게 되었다.

불과 올해 3월까지만 하더라도, 프로그래밍 언어와 프레임워크 같은 개념도 모르고, 프로그래밍 언어에 어떤 것이 있는지도 몰라서, 자바와 자바스크립트가 비슷한 애들인 줄 알았던 (개발자들은 자바와 자바스크립트가 Car와 Carpet 만큼이나 차이난다 농담으로 "카더라") 과거에 공부할 거리가 생기면 북마크에 저장해두는 습관을 가진 나는 자바스크립트 관련 자료들을 "자바"라는 폴더에 저장해두고 있었던 나름의 흑역사가 있다... (심지어 코딩 공부 초창기에 쓴 강의노트에 "자바, 장고 배우기"라는 해괴한 목표를 적어뒀었더라고....) 암튼 최근까지 타입스크립트를 공부하다가, 강의 진도를 슬슬 나가야 할 것 같아 수업을 시작했다.

결론적으로 1주차 강의는 하루만에 들어버렸다. 1주차 강의는 기초적인 자바의 문법과 자료형, 스프링 프로젝트를 만드는 방법과 맵핑 메소드 동작하기를 통해, 로컬호스트 브라우저에 특정 url을 넘기면 JSON 응답을 보내는 것까지 배웠다. 그래도 헤매지 않고 금세 진도를 나갈 수 있었던 것은 얼마 전까지 공부하던 타입스크립트와 닮은 점을 꽤 많이 발견해서이다. 물론 남병관 튜터님이 당장 눈앞이 아득해질만한 고난이도 개념들을 일단은 미뤄두고 흥미를 끌어올리는 강의 초반 전략을 잘 수행하셨기 때문이겠지.. 나중엔 어려워질테다..

 

아직도 코딩 안배웠어? 5만원 깎아줄께 형아만 믿어

 

일단 1주차에 접하게 된 자바와 타입스크립트의 공통점을 적어놓겠다.

일단 자바와 자바스크립트는 전혀 다른 언어이지만(자바스크립트가 멋대로 베낀 이름이지...) 타입스크립트는 변수와 메소드 리턴값의 타입을 정의한 특징이 있기 때문에 자바의 그것과도 꽤나 비슷하다.

우선 두 언어 모두 컴파일 후 동작하는 부분과, 객체 지향 프로그래밍이 가능하다는 점에서 비슷한 것 같다. private와 public 속성을 두어 객체 외부에서 멤버 변수에 함부로 접근하는 것을 차단하는 기능도 비슷한 것 같고, 메소드(함수)를 작성할 때 리턴 값의 자료형을 표기해야 하는 것과 리턴 값이 없는 메소드를 void로 표기하는 것, 자료형+타입을 표기할 때 배열의 형태인 경우 []를 붙이는 것..? 뭐 그런 점들이 비슷한 것 같다. 또 클래스의 이름은 대문자 카멜케이스로, 변수와 메소드의 이름은 소문자 카멜케이스로 짓는 것도 비슷..!! 뭐 그 덕에 기본적인 문법은 금방 끝냈다.

파이썬의 print(), 자바스크립트의 console.log()에 이어 자바는 System.out.printIn();를 사용하는데, 덕분에 모든 코드가 길다. 파이썬이 진짜 코드가 간단한 편이었구나 새삼 실감한다.

간단한 배열을 만들고 변수를 추가하는 것만 봐도 파이썬과 자바스크립트에서는

my_fruits = ["딸기", "체리", "블루베리", "크랜베리"]
for fruit in my_fruits:
	print(fruit)
const myFruits = ["딸기", "체리", "블루베리", "크랜베리"]
for (let i=0;i<myFruits.length;i++) {
	console.log(fruit);
};

간단하게 [] 안에 변수들을 넣기만 하면 됐었는데... 자바는.... 

List myFruits = new ArrayList<>();
myFruits.add("체리");
myFruits.add("딸기");
myFruits.add("키위");
for (let i=0; i<myFruits.size(); i++) {
	System.out.printIn(fruit);
};

코드가 넘 길다. 진짜 코드린트 없이는 못해먹을거같은 언어.... 인텔리제이 너가 있어 참 다행이다...

어깨넘어 뭐라도 배우려고 발만 걸쳐놓은 개발자 단톡방에서 거의 매일 다뤄지는 언어가 바로 자바였는데, 드디어 나도 그 대화들을 조금이라도 이해할 수 있게 됐다...!! (이게 왠지 큰 동기부여가 된다.) 후하후하

이번 강의에서도 어느정도 html 등 웹을 꾸리긴 하지만, 거기에서 스프링으로 만든 서버와 소통하게 하는 게 주목적이라 어느정도 백엔드 공부를 하는거라 봐도 무방할 것 같다. 지금까지는 프론트엔드 편식을 좀 해왔으니.. 백엔드의 기반을 다져보는 계기가 될 것 같다.

반응형

댓글