본문 바로가기

전체 글106

[개인 프로젝트] 조엘의 웹 호스팅 안녕하세요! 조엘입니다! 🤞🤞 오랜만에 개인 프로젝트를 진행해 봤어요! "조엘의 웹 호스팅"을 소개합니다. 🎁 배포 URL: https://joel-web-hosting.o-r.kr/ => https://easy-deploy.kr/ 로 이전! 🎯 GitHub: https://github.com/joelonsw/web-hosting *** 기획 의도 *** 우테코가 Level3에 접어들면서, 이제 팀 프로젝트를 시작하게 되었어요. 저희 팀은 "부담없이 자랑하는 작고 소중한 내 프로젝트" 라는 슬로건을 바탕으로, 수준에 상관없이 자신의 토이 프로젝트를 자랑할 수 있는 플랫폼을 기획했어요. 자연스럽게 제가 개발을 처음 접했을 때의 기억이 떠올랐는데요! 🤔🤔 배포를 한다는 것이 너무 너무 어렵게 다가왔던 기억이.. 2021. 7. 3.
Level2 미션 + 학습 로그 정리 안녕하세요! 조엘입니다! 🤞🤞 우아한테크코스에서는 미션을 PR로 제출하고, 해당 미션에서 배운 것을 학습로그로 기록하고 있어요. 레벨 2에서는 스프링 프레임워크로 웹 애플리케이션을 개발해보고, 배포 인프라와 관련된 내용을 학습했어요. 짧지만 프론트엔드 크루들과 협업하는 미션도 진행했어요. [미션 정리] 미션명 PR 링크 스프링 입문 - 체스 https://github.com/woowacourse/jwp-chess/pull/251 스프링 입문 - 체스 https://github.com/woowacourse/jwp-chess/pull/294 배포 인프라 https://github.com/PapimonLikelion/woowacourse-TIL/blob/master/Level2/2021-04-29.md 스프링.. 2021. 6. 22.
저는 서블릿이 처음이라니까요? 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 여덟 번째 토픽은 서블릿입니다. 🎯🎯 자바로 웹 개발을 하다 보면 서블릿이라는 말을 많이 듣게 되는데요! 스프링에서는 "디스패처 서블릿을 통해 프론트 컨트롤러 패턴을 구현했다" 같은 어려운 표현도 접해요. 이번 기회에 서블릿이 무엇인지! 스프링을 공부하면서 왜 서블릿을 알아야 하는지 알아봅시다 🤞🤞 *** WAS란? *** 서블릿을 알아보기 전에 WAS(Web Application Server)에 대해 먼저 알아보아요. 기존에는 웹이 정적 자원들만 반환했어요. 하지만 점점 웹에서 처리할 수 있는 영역이 넓어지면서, 요청에 따라 다른 자원을 반환하는 동적 웹에 대한 수요가 커져갔어요. 정적 자원들을 반환하고 간단한 동적 자원을 생성하는데 특화된 웹 서버로는.. 2021. 6. 22.
저는 어노테이션이 처음이라니까요? 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 일곱 번째 토픽은 어노테이션입니다. 📜📜 스프링 프레임워크로 웹 개발을 하면서 참 많은 어노테이션을 쓰게 되는데요. 하지만 막상 누가 어노테이션이 뭐냐고, 왜 쓰냐고 물어보면 대답을 못할 것 같더라고요? 🤔🤔 이번 기회에 "어노테이션은 이래서 쓰는 거야" 확실히 말할 수 있게 정리해봅시다! 👏👏 참고로 리플렉션에 대한 이해가 있으면 포스팅 읽기가 더 수월해요 :) Reflection API: https://papimon.tistory.com/82 *** 어노테이션이란? *** 어노테이션이 뭔지 정의부터 알아봐야겠죠? Oracle의 Java Tutorial에서는 어노테이션을 다음과 같이 설명하는데요. Annotations, a form of metadata.. 2021. 6. 11.
Reflection API 안녕하세요! 조엘입니다! 🎉 오늘은 자바의 Reflection API에 대해 알아보는 시간을 가져볼게요! 💪💪 피드백 환영입니다! 댓글 달아주세요 :) *** Reflection API란? *** Reflection API의 정의를 먼저 알아보도록 해요. 공식문서에서는 다음과 같이 Java Reflection API를 설명하는데요. Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on their underlying counterpar.. 2021. 6. 9.
저는 JVM이 처음이라니까요? 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 여섯 번째 주자 바로 JVM입니다. ✨✨ IDE에서 열심히 작성한 코드를 기도 메타와 함께 play 버튼만 누를 줄 알던 과거를 이제 뒤로하고! 이번 기회를 통해 작성한 자바 코드가 실제 하드웨어까지 어떻게 전달되는지 알아보도록 해요. 😁 *** Java 프로그램 실행 flow *** IDE의 플레이 버튼을 누르면 사실 다음과 같은 과정이 일어나게 되어요. 1. 개발자들은 IDE를 키고 열심히 자바 문법에 맞춰 소스코드(.java) 를 작성합니다. 2. javac 컴파일러를 통해 바이트코드(.class) 를 생성합니다. 3. 해당 바이트코드를 실행할 수 있는 런처를 실행합니다. 4. 런처는 내부적으로 JVM에서 바이트코드를 동작시킵니다. 5. JVM에서는.. 2021. 5. 28.
저는 소켓이 처음이라니까요? 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 다섯 번째 주자 바로 소켓입니다. 👏👏 사실 소켓은 처음 접해보는 주제는 아니에요. 네트워크 시간에 배웠지만, 수업에서 제공해주는 코드를 따라 치기에 급급했던 기억이 나네요. 😅 소켓이 무엇이고, 어찌 동작하는지, 그리고 웹에서는 어떻게 소켓을 사용하는지 알아봐요! 💪 *** 소켓이란? *** 위키피디아에서 정의한 소켓은 다음과 같아요. 네트워크 소켓(network socket)은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다. 오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. 소켓.. 2021. 5. 10.
Level1 미션 + 학습 로그 정리 안녕하세요! 조엘입니다! 🤞🤞 우아한테크코스에서는 미션을 PR로 제출하고, 해당 미션에서 배운 것을 학습로그로 기록하고 있어요. 레벨 1의 학습 목표는 다음과 같았는데요. 자바 프로그래밍 언어에 대한 기본 문법을 익혀 프로그래밍하는 경험을 한다. 읽기 좋은 코드를 구현하는 것이 왜 중요한지와 코드를 개선해 읽기 좋은 코드로 변경해 보는 경험을 한다. 자신이 구현한 코드에 대해 단위 테스트와 리팩토링하는 경험을 한다. 웹 프론트엔드에서 웹 백엔드까지 프로그래밍해 웹 애플리케이션을 개발하는 경험을 한다. 학습로그를 정리하면서 레벨 1에서 배워야 할 부분 중 단위 테스트에 대한 공부가 조금 모자랐다는 생각이 드네요! 물론 테스트 코드를 작성하고 TDD 기반으로 미션을 진행하려고 노력은 했습니다만,,, 단위 테.. 2021. 4. 26.
저는 SOLID가 처음이라니까요? (2편) 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 네 번째 주자 바로 SOLID 원칙입니다. 👏👏 SOLID가 왜 중요한 개념인지 같이 공부해보도록 해요! 저번 1편에 이어 2편에서는 LSP / ISP / DIP를 다루도록 하겠습니다! *** Liskov Substitution Principle (리스코프 치환 원칙) *** 세 번째 원칙은 LSP, 리스코프 치환 원칙이에요. 정의는 다음과 같아요. "상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상으로 작동해야 한다." LSP는 앞서 살펴본 OCP를 지원하는 원칙이에요. LSP는 다형성에 대한 원칙이거든요. LSP를 준수한 프로그램에서는 상위 타입의 객체를 사용하는 기존의 코드에, 하위 타입의 객체를 대입해도 프로그.. 2021. 4. 15.
반응형