분류 전체보기
-
Reflection 리플렉션Java/기본 2018. 1. 21. 23:46
토비의 스프링 3.1 Vol.1 6장을 읽다가 리플렉션에 대해 설명이 나왔는데 쉽게 잘 설명이 되있다. 그래서 책의 내용을 읽고 정리해보았다. 위키에 리플렉션에 대한 정의는 다음과 같다.반영(Reflection)은 컴퓨터 프로그램에서 런타임 시점에 사용되는 자신의 구조와 행위를 관리(type introspection)하고 수정할 수 있는 프로세스를 의미한다. “type introspection”은 객체 지향 프로그램언어에서 런타임에 객체의 형(type)을 결정할 수 있는 능력을 의미한다. 위의 설명만으로는 잘 와닿지 않는다. 아래는 책의 설명이다. 자바의 모든 클래스는 그 클래스 자체의 구성정보를 담은 Class 타입의 오브젝트를 하나씩 갖고 있다. '클래스이름'.class'라고 하거나 오브젝트의 get..
-
[2018.01.06] 함수형 자바스크립트 프로그래밍 세미나후기/세미나 2018. 1. 20. 16:25
올해 첫 세미나를 다녀왔다. 친구 조은이의 소개를 받아 알게되어 다녀왔다. 현재 업무에서 자바스크립트를 잘 쓰고 있지는 않지만 그래도 다녀온 이유는 내가 아직 스칼라를 함수형으로 사용한다는 느낌이 들지 않아서다. 함수형 패러다임에 대해 잘 이해하고 자바스크립트에서는 어떻게 구현할 수 있는지 알아보고 싶었다. (경품 1등 상품인 FC660C가 받고 싶었던 이유도 있었지만 실패) 출처: 온오프믹스 행사설명 페이지필기내용함수형 프로그래밍 부수효과를 줄임 -> 순수 함수 함수 조합성 -> 모듈화 수준 함수 개념을 가장 우선순위 함수형 사고방식은 문제의 해결 방법을 동사(함수)들로 구성(조합) 객체(데이터) 중심 -> 명사 + 동사함수중심 -> 동사 + 명사 함수의 특징 일급 함수 함수를 값으로 다룰 수 있다. ..
-
[토비의 스프링 3.1 Vol.1] 5장 서비스 추상화Java/Spring Framework 2018. 1. 16. 22:37
[사족] 드디어 한 번만 본 챕터가 나왔다. 6장의 AOP는 본 기억이 없으니 아마 5장 중간즈음 보다가 완독을 못했을 것 같다. 이 기세로 쭉쭉 읽어 나가자. 5장은 내용이 더 재밌어진다. 이때까지 만든 사용자 관리시스템(?)에 기능을 더 추가한다. 활동별 사용자 등급 변경기능과 등급 변경시 메일 안내 발송 기능이다. 해당 기능들을 개발하면서 발생하는 문제점들을 풀어나간다. 어떻게? 당연히 스프링 DI를 활용해서. 그리고 토비 선생님은 정말 테스트를 중요하게 생각 한다는 것을 또 한번 느꼈다. [내용] 5장의 목차5.1 사용자 레벨 관리 기능 추가5.2 트랜잭션 서비스 추상화5.3 서비스 추상화와 단일 책임 원칙5.4 메일 서비스 추상화5.5 정리 사용자 관리시스템에 레벨 기능을 추가한다. 간단히 fi..
-
[토비의 스프링 3.1 Vol.1] 4장 예외Java/Spring Framework 2018. 1. 14. 01:08
[사족] 4장도 3번째 정도 보는 것 같다. 예외는 토비님의 말대로 많은 개발자들이 제법 귀찮아 하는 부분이다. 당장 돌아가는 기능이랑은 별로 상관 없다고 생각되기 쉽기 때문이다. 하지만 그 중요성은 누구나 다 알것이다. 99% 잘 돌아가다가도 1%의 예외 가능성 때문에 시스템이 장애가 나고 다운이 된다면 그건 불완전한 소프트웨어가 되버린다. 그만큼 디테일, 장인정신, 꼼꼼함이 필요한 것이 예외처리다. 자바8이나 스칼라 같은데는 null처리 같은 예외상황에 안전하게 대처하기 위해 Option이 있다. 스펙에 포함될 정도로 예외처리와 관련된 것은 중요하고 꼭 필요한 것이다. 4장까지 봤을때 스프링을 사용하는 가장 큰 이유는 "유연한 시스템 개발"인 것 같다. 인터페이스를 활용하여 느슨한 결합을 유지하고, ..
-
[토비의 스프링 3.1 Vol.1] 3장 템플릿Java/Spring Framework 2018. 1. 4. 22:45
[사족] 3장은 이제 한 3번째 보는 것 같다. 역시나 새로운 것은 마찬가지다. 예전에 실습 했던게 조금 기억은 나긴하지만. p.241에 콜백을 설명하면서 "자바에선 메소드 자체를 파라미터로 전달할 방법은 없기 때문에 메소드가 담긴 오브젝트를 전달해야 한다. 그래서 펑셔널 오브젝트(functional object)라고도 한다."라고 나온다. 이제는 람다가 가능하여 메소드 조각도 파라미터로 전달 가능한 시대가 왔다. 토비의 스프링3가 2010년, 지금 내 책의 초판 인쇄가 2012년인걸 보니 격세지감이 느껴졌다. 그런데 나는 왜 아직도 완독을 못한걸까? [내용] 3장의 목차3.1 다시 보는 초난감 DAO3.2 변하는 것과 변하지 않는 것3.3 JDBC 전략 패턴의 최적화3.4 컨텍스트와 DI3.5 템플릿과..
-
2018년 계획창작공간/일기 2018. 1. 4. 19:03
2017년 공부 계획을 공개적으로 세워보니 알게 모르게, 의식적으로든 아니든간에 계획을 세운 방향으로 가고 있는 것 같다. 2018년도 좋은 계획을 세워서 한단계 더 나아가는 미래의 개발왕이 되어야 겠다. 올해 목표도 작년과 다르지 않다. 아직 주니어로서 새롭게 알아가는 부분들이 많다. 기초를 탄탄하게, 업무에서 좋은 결과를 낼 수 있게, 그리고 해보고 싶은 것을 배우고 써보고 싶다. 단순한 코더가 아닌 프로그래머로서 자신의 코드에 이유와 책임을 질 수 있는 개발자가 되고 싶다. 이미 검증된 양서들을 바탕으로 나의 코딩 철학과 가치관 등을 정립해 나가야겠다. 기술 단상Java, Spring처음 개발 시작할 때부터 사용하던 언어가 자바였고 지금도 스프링을 활용한 개발업무를 하고 있다. 지금은 스칼라로 신규..
-
2017년 회고창작공간/일기 2018. 1. 1. 23:43
시간이 흘러 2018년이 밝았다. 2017년 공부 계획을 쓰고 다양한 공부를 계획했었고, 중간에 2017년 상반기 회고를 쓰면서 지나간 6개월을 돌아보고 남은 6개월을 다잡아 보았다. 오픈소스라거나 개인 프로젝트는 생각하지 않은 한 해였다. 만들면서 배우는 것이 효과적인 공부방법이라 하지만, 어설프게 알고 만들어 봤자 어설픈 결과물만 나올 것 같은 생각이 들어서다(그렇다고 모든 것을 완벽하게 알고 만들수는 없겠으나, 어느정도는). "2017년 공부 계획 & 2017년 상반기 회고" 정리 객체지향 원리를 이용한 자바와 스프링을 아름답게 사용할 수 있도록 기반을 탄탄하게, 나아가 함수형 패러다임과 최신 기술들을 공부하고 싶다. (링크) 업무와 공부를 통해 어느정도 달성하였다. 스프링 & 스프링부트, 스칼라를..
-
[토비의 스프링 3.1 Vol.1] 2장 테스트Java/Spring Framework 2017. 12. 25. 22:09
[사족] 이제는 Java에서는 어지간하면 JUnit을 이용해서 메소드들을 테스트한다. 쉽고 빠르게 여러번 테스트 하기 쉽기 때문이다. 테스트를 작성하는 과정이 까다롭거나 귀찮을 수 있으나 단점보다 장점이 훨씬 많다고 생각된다. 스프링을 사용하지 않더라도 JUnit을 활용하면 테스트 하기 쉽다. 2장에서는 Java의 기본적인 테스트부터 스프링의 테스트, 나아가 학습테스트까지 소개하고 있다. [내용] 2장의 목차이다. 2.1 UserDaoTest 다시 보기 2.2 UserDaoTest 개선 2.3 개발자를 위한 테스팅 프레임워크 JUnit 2.4 스프링 테스트 적용 2.5 학습 테스트로 배우는 스프링 2.6 정리 1장에서 만든 main메소드를 이용한 테스트를 JUnit을 활용한 테스트로 변모시켜 나간다. 만..