본문 바로가기

All

(30)
함수형 프로그래밍(FP) 자바 8을 사용하다 보니 자연스럽게 람다와 스트림을 통하여 함수형 프로그래밍을 접하게 되었습니다. 위 두 가지를 쓰면서도 함수형 프로그래밍에 대한 이해는 없는 채, 단순히 간결한 코드 작성이 가능하다는 이유만으로 사용을 해왔습니다. 그러다 함수형 프로그래밍을 좀 더 깊숙하게 알기 위해 스터디를 진행했습니다. 함수형 프로그래밍이 무엇이냐고 물어본다면 한마디로 '순수 함수(Pure Function)를 작성'하는 것이라고 정의를 내릴 수 있습니다. 이것을 풀어 말하면 '동일한 입력값에 대해서는 항상 동일한 출력값을 반환(참조에 투명)'하는 것입니다. 그러나 독자분들은 다음과 같이 생각하실 수도 있습니다. '어? 내가 짠 코드는 동일한 입력값을 넣으면 동일한 출력값이 나오던데?' 이는 저도 가졌던 오해였고, 코..
Java and Spring forward! [KSUG] KSUG(Korea Spring User Group)에서 주최하는 Java and Spring forward!에 다녀왔습니다.최근 Java9과 Spring5가 릴리즈 되었고, 많은 내용이 변했기 때문에 관심을 가지다 해당 세미나에 참석하였습니다. 총 200석임에도 불구하고 8분 만에 매진된 걸 보니 저와 같은 생각을 하는 사람이 많았던 것 같습니다. 4가지의 세션이 있었고, 개인적으로는 첫번째와 마지막 세션에 큰 관심을 두고 있었습니다. 변경되거나 새로생긴 스펙에 대해서 발표하는 자리라서 연사님들도 "스펙에 대해 발표하는 게 제일 힘들다 왜냐하면 듣는 사람들이 지루해하기 때문이다."라는 말을 하시며 곤란함을 표현했습니다. 첫 번째 세션인 Java 9 new feature에서는 자바 9에서 새로 생긴 스펙..
Angular의 Component-Based Development 지난 8월 Ahea 팀 해커톤에 참석을 했었습니다. 그때 새로운 기술을 써보자는 의미로 Angular를 하게 되었고, 자연스럽게 Component-Based Development에 대한 이해를 하게 되었습니다. 오늘은 그 주제에 대해서 이야기를 나눠보려고 합니다. 아래는 저희 프로젝트 화면입니다.보시는 바와 같이 로직은 Field Name과 Type을 필요한 만큼 동적으로 생성하여 값을 넣고, 원하는 추출 타입과 수를 정한 뒤 Preview를 클릭하면 서버에서 데이터를 가져와 보여줍니다.먼저, Angular는 Component-Based Development(이하 CBD)이기 때문에 Component로 나눠서 생각을 해보겠습니다.총 4개의 Component로 구성되어있습니다.main : 전체와 Heade..
스프링 빈은 Thread-safe 할까? 초기에 스프링을 공부할 때 스프링 빈의 기본 Scope는 싱글톤이고, 스프링 환경은 멀티 쓰레드이라는 것을 알았습니다. 그런데 '왜 하나의 공유자원(싱글톤 객체)을 여러 쓰레드에서 다루는데 문제가 되지 않을까?'란 생각을 했습니다. 한편으로는 '스프링이 마법을 부려서 쓰레드에 안전한 건가?'란 생각도 했고요. 차근차근 싱글톤과 불/가변 객체에 대해 알아보고 무엇이 착각을 일으켰는지 알아보겠습니다. 먼저, 위키를 통하여 싱글톤의 정의에 대해서 알아보겠습니다. 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 ..
Spring 5.0.0 레퍼런스 (The IoC container) [작업중] Spring 5.0.0 M3 일 때 부터 조금씩 번역한 내용이고, 개인적으로 크게 신경안 써도 될 부분은 생략시켰습니다. 스프링의 이해 및 영어공부를 위해서 작성했었고, 소수의 필요한 분들을 위해 공유합니다. https://docs.spring.io/spring/docs/5.0.0.RELEASE/spring-framework-reference/core.html#spring-core 1. IoC 컨테이너 1.1 스프링 IoC 컨테이너와 빈 소개 BeanFactory 인터페이스는 모든 유형의 객체를 관리할 수 있는 고급 구성 메커니즘을 제공합니다. ApplicationContext 는 BeanFactory의 하위 인터페이스이며, AOP기능과의 통합을 더욱 쉽게 합니다.(?) 즉, BeanFactory는 설정..
Spring boot환경에서 JWT 사용하기 근래 모바일 트렌드 중 하나는 로그아웃을 하지 않는 이상 로그인을 유지하는 것입니다. 일반적으로는 손쉽게 Session을 이용해서 클라이언트와 서버 통신 중 Stateless의 단점을 보완할 수 있었지만, 모바일의 특성상 자주 끊길 소지가 있습니다. 세션과 비슷한 역할을 하되, 계속해서 유지될 수 있는 기술을 찾다 보니 Token을 이용한 방식이 있었고, 그중 JWT를 사용하게 되었습니다. JSON Web Token (JWT)은 JSON 객체로서 당사자 간에 안전하게 정보를 전송할 수 있는 작고 독립적인 방법을 정의하는 공개 표준 (RFC 7519)입니다. 이 정보는 디지털로 서명 되었기 때문에 신뢰할 수 있습니다. JWT는 암호 (HMAC 알고리즘 사용) 또는 RSA를 사용하는 공용 / 개인 키 쌍을 ..