일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Conference
- webframework
- MSA
- springcloud
- ddd
- MongoDB
- spring6
- java17
- 신입
- springboot
- zuul
- kakao
- 개발자
- 값객체
- docker
- Kotlin
- ifkakao
- Spring
- 반버논
- Redis
- Pay
- armeria
- springboot3
- spring scheduler
- IDDD
- spring-web
- mongo
- spring caching
- 바운디드컨텍스트
- 애그리거트
- Today
- Total
목록분류 전체보기 (67)
Easy Understanding
1. 서블릿이 무엇인가 우선 예전에는 몰랐던 Servlet의 의미를 다시 한 번 정리해보려고 한다. 대부분의 설명에서는 자바 웹서버 '프로그램'이라고 하는데, '아 그래서 프로그램이 정확하게 뭘 말하는 건데 ㅡㅡ' 라는 생각으로 좀 찾아보았다. 정확하게 말하면 Servlet은 Java의 스펙이다. JPA도 단순 명세이고 이것을 구현한 것이 Hibernate인 것 처럼, Servlet도 명세고, 구현체로는 Tomcat 같은 것이 있는 것이다. 그래서 Servlet 코드를 열어보면 대부분이 인터페이스밖에 없다. Servlet은 Spring처럼 ServletContext라는 Container에서 관리된다. 이 Servlet Container에서 여러 개의 Servlet을 관리하는 식으로 동작을 하게 된다. S..
스프링 Core 문서를 읽으니 스프링이 어떤 기능을 제공하는지는 확실히 알게 되었다. 그렇지만 이번 스터디의 목표는 IoC 컨테이너의 구현을 확실히 확인하자는 것이었기 때문에, 다음 목표는 코드로 잡고 스프링 github 내용을 다운 받아 IntelliJ를 이용해서 분석하게 되었다. 문서의 흐름과 비슷하게 다음의 순서로 코드를 분석해보았다. 1) Spring BeanFactory 가 구현된 spring-beans 모듈 정리 2) Spring ApplicationContext 가 구현된 spring-context 모듈 정리 3) 그 중에서 핵심이 되는 클래스들의 내부 구현 확인 spring-beans 모듈 구성 beans 패키지: Java Beans를 다루기 위한 클래스들이 놓여있다. - factory(*..
최근에 스프링 코드를 보면서 IntelliJ 를 적극 활용하면서 코드를 분석해 보았는데, 역시나 Ultimate 버전이라서 그런지 활용할 수 있는 것들이 많았다. 다음은 IntelliJ에서 코드를 분석하기 위해서 사용할 수 있는 몇 가지를 소개한다. 아마 Ultimate에만 있는 기능이 몇 가지 있을 것이다. 1. 좌측아래 있는 Structure 탭을 이용하기 클래스가 길어질 경우 클래스 내부의 메서드/프로퍼티 등을 빠르게 파악할 수 있다. 2. Hierarchy(control h)를 이용하여 상속관계를 파악하기 맥 기준 원하는 변수에다가 '컨트롤 h'를 누르면 해당 클래스의 상속관계를 보여준다. 상속관계를 파악하기에 유용하다. 3. Method/Class 우클릭 후 Find Usages를 눌러서 해당 ..
2. Resource 일단 Resource가 무엇인가 알아보아야 할 것 같다. 간단하게는 스프링 패키지를 타고 내려가다 보면 resources 라는 폴더가 있다. 거기에 있는 파일들이 간단하게 Resource들이다. 원래대로라면 자바의 java.net.URL 클래스를 이용해서 Resource를 사용할 수가 있다고 한다. 그러나 이 단순한 클래스로는 다양한 리소스에 대한 동적인 처리가 어렵다. 특히나 파일들을 가져올 때, 클래스패스를 기준으로 가져올 것인지, 아니면 ServletContext를 위주로 가져올 것인지 이런 다양한 상황에 대해서 대처가 불가능하다. 그냥 자바의 기본 라이브러리는 굉장히 단순하고 기능이 적다는 말이다. 그래서 스프링에서는 서버의 자원들을 어떻게 접근하고 관리할 것인가에 대해서 하..
스프링의 가장 핵심은 Inversion of Control(IoC) Container이다. 사실상 제일 중요한 기능이며, 문서의 대부분을 이루는 기술이기도 하다. IoC를 통해서 우리는 대부분의 코드를 선언적으로 사용할 수 있게 된다. 즉 기존에 Foo aFoo = new Foo(); 를 이용해서 절차적으로 만들던 코드를 단지 Foo() aFoo; 라는 선언만으로 사용할 수 있게 되는 것이다. 사실 이 정도만 따지면 단지 클래스의 선언을 도와주는 프레임워크라고 생각할 수도 있다. 그러나 스프링 IoC의 핵심은 이를 통해서 거의 대부분의 스프링 생태계를 이어준다는 데에 있다. 정말 다양한 모듈들이 다 이 IoC Container를 기반으로 하고 있고 그에 맞춰 구현되어 있기 때문에, 사용자는 대부분의 기능..
나는 대학에서 컴퓨터 관련 복수전공을 이수했고, 파이썬과 머신러닝, 자바와 시작한 백엔드를 거쳐 지금까지 지내왔다. 대학교에서 2년, 머신러닝 공부에 1년, 백엔드 공부에 1년 동안 어떤 것을 배웠는지, 지금 어느 정도까지 왔는지 정리해보려고 한다. 1. 대학 대학교에서는 전공하면서 CS의 기초를 배웠다. 누구나 처음에 배우는 C, Java, 알고리즘, 운영체제, 자료구조, 데이터베이스를 배웠다. 중간중간 알고리즘 스터디를 하기도 했다. 이 전공 과정은 실무 개발자로 나아가기 위한 어떤 지식/경험도 제공하지 않았기 때문에, 심지어 백엔드, 프론트엔드가 뭔지도 몰랐고, 스프링이라는 것도 당연히 몰랐다. 그냥 알고리즘만 잘해도 취업이 되는 줄 알았던 시기. 나에게 이쪽 세계를 입문시켜 주었지만, 사실상 이 ..
처음 해커와 화가라는 이름을 보았을 땐 이 책이 소설인 줄 알았다. 도대체 두 인물은 어떤 관계일까라는 생각을 하며 책을 펼쳤던 것 같다. 그런데 웬걸 이 책은 15개의 수필이자 칼럼과도 같은 글들이 모여있는 책이다. 작가 '폴 그레이엄'은 이 책에서 개발 뿐 아니라, 다양한 분야에 대하여 다루고 있다. 당장 1장만 봐도 학교의 권력관계와 사회적 문제에 대하여 다루고 있다. 그래서 이 책은 각 장별로 짧게 어떤 내용이 있는지를 정리해보려고 한다. 1장 - 공부벌레는 왜 인기가 없을까(그들은 게임판 위의 말에는 관심이 없다) 학교의 권력관계, 그리고 Nerd(책에선 공부벌레라고 하는데 아마 이 단어를 번역한 것이 아닐까 한다)에 관해서 다뤘다. 본인은 Nerd로서 학교의 권력 관계의 아래 쪽에 있었고, 그..
어떤 서비스를 운영할 때 그 서비스가 잘 돌아가고 있는지 확인하는 것은 중요하다. 보통 이런 행동을 모니터링 한다고 말한다. 웹 서비스가 아니라 다른 다양한 일을 할 때도 모니터링이라는 말은 익숙하다. "그 서비스 모니터링은 잘 진행되고 있나요?" 와 같이. 그런데 웹 서비스는 특히 모니터링이 중요하다. 왜냐하면, '실시간(Realtime)' 으로 돌아가기 때문이다. 한 번 돌리면 끝인 프로그램은 솔직히 모니터링이 크게 필요하지 않을 수도 있다. 일단 돌려보고 결과물이 좋으면 그 과정 쯤은 신경쓰지 않아도 된다. 그렇지만 웹 서비스는 실시간 서비스이기 때문에, 어떤 문제가 생길지 알 수가 없어 그 과정을 매 시간 확인해야 한다. 그 방법은 눈으로 직접 확인하는 것일 수도 있고, 문제가 생길 것 같을 때,..