분류 전체보기
-
의존 역전 원칙카테고리 없음 2023. 4. 22. 14:39
아주 저번시간 인터페이스의 분리 원칙에 이어 오늘은 의존 역전 원칙에 대해서 알아보자. 원래는 단일책임원칙에 대해서 하려고 했는데 적당한 예제가 생각나지 않아서 적당한 예제가 생각날때 까지 잠시 보류.. 의존 역전 원칙 (DIP) 의존 역전 원칙이란 다음과 같다 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다. 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다. 흐으음.. 이게 무슨말인가? 고수준 모듈은 무엇이며 저수준 모듈은 또 무엇인가?.. 일단 고수준 모듈과 저수준 모듈에 대해서 살펴보자. 고수준 모듈은 어떤 의미가 있는 단일 기능을 제공하는 모듈이라고 생각하면되고, 저 수준 모듈은 고수준 모듈의 기능을 구현하기 위해 필요한 하위 기능을 실제로 구현한 것으로 정의 할 수 있다. ..
-
Spring boot는 왜 cglib를 선택했을까?카테고리 없음 2023. 4. 22. 14:39
제목 그대로 Spring boot는 왜 cglib를 선택했을지 고민해보자. 내가 고민할건 아니고.. 살짝 제목의 오해가 있을 수 있으니 좀 더 자세히 말해보자. Spring은 기본적으로 aop 메커니즘은 두가지가 있다. 하나는 jdk 동적 프록시와 다른 하나는 cglib 이용한 프록시이다. 자세한 것은 예전에 포스팅한 부분이 있으니 참고하면 되겠다. 참고 : http://wonwoo.ml/index.php/post/1576 두개의 차이점을 알았으니 (참고에서..) 좀 더 자세히 살펴보도록 하자. Spring boot 는 기본적으로 transaction 대상의 aop를 동작시킬 프록시를 cglib 프록시를 사용하게 설정 해놨다. 이 뜻은 인터페이스가 있든 없든 상관없이 무조건 cglib를 사용해서 aop를..
-
@Configuration과 @Bean의 의존 관계 설정카테고리 없음 2023. 4. 22. 14:39
아주 오랜만에 블로그에 포스팅을 한다. 거의 한달만인가? 이래저래 일도 있고 솔직히 조금 귀찮아서 포스팅을 안했는데.. 오늘 잠깐 시간이 되서 남긴다. 오늘 할 이야기는 @Configuration과 @Bean 의 의존 관계 설정에 대해서 알아볼 예정이다. Spring 3.0 이전에는 Spring 설정을 Xml로 많이(?) 아니 거의 대부분 했는데 Spring 3.0 부터 자바 소스 코드로 Spring 설정을 할 수 있게 되었다. 그런데도 불구하고 개발자들은 그렇게 많이 사용 안했던거 같다.(물론 필자 생각 내가 사용안해서 그랬던가..) 그리고 Spring 3.2 이전에는 추가로 디펜더시 받아야 하는 부분도 있어서 그랬던거 아닌가 싶기도 하다. 그나마 3.2 이후에는 디펜더시도 없고 그래서 전보다는 많이 ..
-
ECMAScript 6 (es6)카테고리 없음 2023. 4. 22. 14:39
오랜만에 자바스크립트 공부를 해보자! 참고로 필자는 자바스크립트를 선호하지 않는편이다. 음.. 더 정확히는 동적언어를 선호하지 않는다. 선호하지는 않지만 개발에 필요하다면 사용은 해야겠지? 아무튼.. 요즘 회사에서 vue.js를 시험삼아 사용하고 있어서 vue.js를 살짝 맛보기로 보는 중 이다. vue를 보면서 es6를 사용해보자 라고 생각해서 잠시 공부를 해보도록 하자. 작년에 개인적으로 한번 살펴보긴 했는데 기억이 나지 않는다. (어제 일도 까먹는데 작년일은..) es6는 제작년인가? 2015년도에 나온걸로 알고 있다. 그 닥 많은 관심은 없었기에.. es6에는 꽤 많은 변화가 있었다. 그리고 es5보다 훨씬 좋아졌으니 es6을 사용하도록 권장한다. 물론 막 쓰면 안된다. 특히 IE는 거의 지원 안..
-
java는 call by value? call by reference?카테고리 없음 2023. 4. 22. 14:39
오늘도 역시 java에 대해서 이야기 해볼려고 한다. java로 먹고 살아야 하니.. call by value와 call by reference 오늘 내용은 제목에도 있다시피 java는 call by value?, call by reference? 를 알아볼 예정이다. 그 전에 아주 간단하게 call by value와 call by reference에 대해서 살짝 살펴보자. 보통 c 보다 자바를 먼저 공부한 개발자는 들어본 개발자도 있을 것이고 듣지 못한 개발자도 있을 수 있다. 왜냐하면 책에서 딱히 다루지 않기 때문이다. 필자도 자바책에서는 거의 못본.. 사실 자바만 다루는책은 두권정도밖에 없다. 그래서 못본거일 수도.. 하지만 c와 c++을 먼저 공부를 했다면 무조건 등장한다. 잠시 c언어 책을 꺼내..
-
인터페이스의 분리카테고리 없음 2023. 4. 22. 14:39
오늘은 oop와 관련된 이야기를 해볼 예정이다. oop의 구성요소를 살펴볼 것은 아니고 원칙들을 살펴 볼건데 그중에서 오늘은 인터페이스 분리 원칙(ISP) 에 대해서 살펴보도록 하자. 간단하게만 살펴볼 예정이니.. 사실 필자가 이해한 정도만.. 그 전에 oop의 어떤 원칙들이 있나 보자. oop에는 5가지 원칙들이 있다. 위에서도 적었지만 인터페이스 분리 원칙 (ISP), 단일책임원칙 (SRP), 개방 폐쇄의 원칙 (OCP), 리스코프의 치환원칙 (LSP), 의존성 역전 원칙 (DIP) 등 이 있다. 뭔가 심오한 단어인듯만 같다. 여러가지 원칙들이 있지만 오늘은 인터페이스 분리 원칙 (ISP)에서만 다뤄보자. 나머지는 다음 기회에 포스팅해 보도록 하고(쓸려나 모르겠지만).. 솔직히 이해하기가 이게 제일 ..
-
java의 String 얼마나 알고 쓰나요?카테고리 없음 2023. 4. 22. 14:39
오늘은 자바의 String에 대해서 알아보자. 딱히 많이 중요한 이야기는 아니니 참고 정도만 하면 되겠다. String 과 new String() 자바에서는 두가지 방법으로 String을 선언할 수 있다. 아래와 같이 말이다. String a = "hello"; String b = new String("hello"); 뭐 이건 자바의 왕기초이니 뭐 설명할 것도 없지만.. 한 가지는 String literal을 사용해서 선언가능하고 다른 한 가지는 new 키워드를 사용해서 생성할 수 있다. 그럼 두개의 차이점은 뭘까? 일단 가장 중요한 것은 메모리 구조가 다르다. 둘다 힙영역에 저장되지만 literal의 경우에는 힙영역 안의 string pool이라는 영역에 자리 잡게 된다. 좀 더 살펴보도록 하자. St..
-
스프링캠프와 Spring Boot Mybatis Test카테고리 없음 2023. 4. 22. 14:39
오늘 포스팅은 자랑글 좀 하려고한다. 이번주에 좋은 일이 두가지가 있었다. 첫 번째로 제일 기분이 좋았던 일은 스프링캠프와 관련있는 일이다. 스프링캠프에서 연사를 부탁한다는 메일을 받았다. 메일을 읽자마자 솔직히 조금 설레고 떨렸다.. 그리고 이틀동안 아주 많은 고민, 생각을 했다. 솔직히 너무너무 해보고 싶은데 아직은.. 내가 다른 개발자앞에서 자신있게 발표할 자신이 없었다. 그래서 너무너무 죄송한 일이지만 다음에 기약하기로 하였다. 하지만 난 블라인드 티켓 구매자니 좋은 강의를 듣고 와야 겠다. 좀 더 많은 공부를 한 후.. 좀 더 나은 개발자가 된 후 내년에는 꼭 도전해보려 한다. 다시 공부를 열심히 할 계기가 생긴 거 같아서 좋다. 아무튼 이런 기분 좋은 일이 있었다 그리고 스프링캠프 스태프분들 ..