TIL(16)
-
[자바] 로또 게임 구현
스터디에서 진행하는 자바 콘솔 애플리케이션 개발의 세번째 작품인 로또 게임 구현은 지난 레이싱 게임 때보다 훨씬 많은 조건을 충족시키며 개발하였다. 덕분에 많은 고민을 하며 스트레스를 받았지만 그만큼 알게된 것과 얻은 것이 많았다. 전체 프로젝트를 진행하면서 새로 알게된 내용들을 정리하게 되었다. (로또게임) 1. Collection에서 제공하는 unmodifiable 메소드. 개발을 하다보면 어느 시점에서 더이상 데이터가 변경되지 않아야 하는 상황이 온다. 로또 프로그램을 만들면서 로또의 번호가 한번 정해지면 더이상 변경되지 않아야 한다던가, 게임 결과가 변경되지 않아야 한다는 것처럼 말이다. 위의 두 메소드는 한 로또에 속해있는 번호를 반환해주는 메소드와 당첨 결과를 담은 map을 반환해주는 메소드이..
2020.05.18 -
[웹] MVC 패턴
MVC는 Model View Controller 의 약자로서 프로그래밍을 좀 더 구조적으로, 체계적으로 할 수 있도록 하는 접근법 중 하나이다. 이번 정리에서는 웹 개발을 하는데에 있어서 이러한 MVC구조가 어떻게 적용되는지를 정리하려고 한다. 1. 정적 웹과 동적 웹 MVC구조로 개발되는 웹 사이트는 대부분 동적 웹사이트라고 할 수 있다. 따라서, 정적 웹과 동적 웹을 먼저 구분해보겠다. 먼저 정적 웹사이트란 언제 접속해도 같은 리소스를 건네주는 웹사이트를 말한다. 미리 만들어 놓은 html, css, javascript 파일들을 클라이언트의 브라우저에 전달해 주는 웹사이트라고 생각하면 되겠다. 이때, '들어갈 때마다 매번 같은 화면이 보이는게 정적 웹사이트다'라고 오해하면 안된다. (참고했던 유튜브 ..
2020.05.18 -
[빌드툴] Maven
스프링을 통해 개발을 하다 보면 메이븐 또는 그레이들을 빌드툴로 사용하는 경우가 많을 것이다. 나 또한 강의를 들으며 스프링을 접해보았는데, 빌드 툴을 사용하지 않는 경우는 없었다. 그 중 가장 먼저 사용해 보았던 maven에 대해 정리해 보았다. 뉴렉처 님의 maven강의를 수강하고 그것을 기반으로 정리한 내용이다. 1. 메이븐은 빌드 툴이다. 메이븐은 개발을 하는데 있어서 빌드를 대신 해주는 빌드툴이다. 나는 이 부분에서 빌드가 무엇을 의미하는지 먼저 정리해 보았다. 나는 아주 무지할때 컴파일과 빌드가 별개의 작업이라 생각한 적이 있다. 그때와 나같은 사람을 위해 간략하게 컴파일과 빌드에 대해 적어보았다. 컴파일? 컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정이라고 할 수 있다...
2020.05.13 -
[서버] 웹서버와 WAS
나는 전에 서버 개발이 의미하는 것이 웹 서버를 개발하는 것과 웹 애플리케이션 서버(WAS)를 개발하는 것으로 나누어지는 것을 확인했다. 웹 서버는 클라이언트로부터 HTTP 요청을받고 응답해주는 역할을 하는 반면에 웹 애플리케이션 서버는 데이터를 조작하여 내어주는 역할을 한다는 나름대로의 요약도 해보았다. 이번 글에서는 두 서버의 차이를 조금더 구체적으로 정리할까 한다. 먼저 웹 서버에 대한 정리이다. 웹서버는 웹 + 서버 정도로 나누어 볼 수 있다. 웹은 인터넷을 기반으로 하여 데이터를 공유, 검색할 수 있게 해주는 서비스이다. 이러한 웹은 URL(주소), HTTP(통신 규칙), HTML(내용)으로 이루어져 있다. 서버는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템이라고 할 수..
2020.05.07 -
[자바] Java와 JVM
'자바를 왜 사용해?' 라는 질문에 나는 어느 정도까지 대답을 할 수 있을까. 배웠던 내용을 찬찬히 생각해본다면 여러 이유를 찾아낼 수 있겠지만, 즉각적으로 대답할 수 있는 내용은 매우 적었다. 자바가 객체지향 프로그래밍을 지원하는 언어이니까? 웹 어플리케이션 개발에 가장 많이 사용되는 언어이니까? .. 정도....? 내가 사용하는 언어이면서 이정도밖에 대답이 나오지 않는다는 것은 참 부끄러운 일이다. 한번쯤 찾아보았던 내용이지만, 정리를 해두지 않아서 계속 잊어버리는 자바의 기원에 대해서 간략하게 정리해보려고 한다. 또한, 자바가 강력할 수 있는 근본적 이유인 JVM에 대해서도 간단히 정리하겠다. 1. Java의 기원 자바는 썬 마이크로시스템즈의 제임스 고슬링이 개발한 프로그래밍 언어이다. (물론, 혼..
2020.05.06 -
[서버] 서버개발의 의미
나는 '어떤 프로그래밍 공부해?' 라는 질문에 '백엔드 프로그래밍 공부중이야' 라고 답해왔다. 실제로 내가 공부해왔고 지금도 공부하고 있는 내용은 분명 '백엔드 공부'라고 말할 수 있을 것이다. 그러던 어느날 여러 채용공고를 둘러보던중에 '서버 개발자'를 모집하는 곳이 있고, '백엔드 개발자'를 모집하는 곳이 있다는 사실을 알게되었다. 두 개발자가 명확히 다른 직무를 뜻하는는 것인지, 아니면 같은맥락 속에서 그 디테일이 다른것인지 너무나 궁금해져서 이러한 정리가 시작되었다. 결론부터 말하자면, 내가 포인트를 둬야 할 부분은 '서버'냐 '백엔드'냐 그러한 용어의 차이가 아니라는 것이었다. '서버 개발'과 '백엔드 개발'은 서로 같은맥락으로 사용되고 있으며, 중요한 것은 서버가 사용되는 큰 흐름을 이해하고 ..
2020.04.27