본문 바로가기

전체 글

(514)
추천의 종류 및 개념. 추천의 종류 및 개념. 추천에는 몇가지 방법을 제공한다. 아이템 자체의 내용을 분석해서 하는 추천하는 방법과 사용자들이 아이템을 평가한 이력을 분석해서 추천하는 방법이 대표적이다. 각 방법의 정확한 개념과 기본적인 사용법을 정의해본다. User-based Collaboration Filtering Item-based Collaboration Filtering Content-based Filtering 사용자 A 가 선호하는 아이템을 사용자 B 에게 추천한다. 사용자 A 와 B 의 연결고리는 유사도만 있다. Cold-start 단점이 있다. 사용자 A, B, C, D, E 모두 아이템 X 를 가지고 있다. B, C, D, E 가 모두 아이템 X 와 아이템 Y 를 좋아한다면 아이템 X 와 Y 의 유사도는 높..
화면 개발을 위한 몇가지 요소들. 화면개발을 위한 몇가지 요소들. web application 에서는 backend 못지않게 frontend 도 중요하다. 아무리 성능이 좋아도 사용자를 위한 UI 가 시원찮다면 저평가를 받게 되어있다. 화면을 개발할때 ui frameworks, components 등의 용어들이 사용되는데 개발시에 여러 용어들을 정확하게 정의하지 않고 혼용되면서 구성원들 간에 혼란이 발생할 수 있는데 용어부터 정확하게 정리해본다. UI Frameworks JavaScript Frameworks UI Components Frontend Frameworks 와 같의 의미이다. CSS 컨트롤이 필요하며 개발자보다는 디자이너나 퍼블리셔의 역량이 필요하다. 프로젝트 성격에 따라서 적절하게 customizing 해서 사용한다. 한번..
Spring Framework 에서 Batch 구현하기 Spring Framework 에서 Batch 구현하기 일반적으로 batch 작업은 일련의 작업을 몇개의 단위로 묶어서 연속적으로 일괄처리해주는 것을 말하며 일반적으로 일정시간(주로 야간)에 정기적으로 실행하거나 사용자의 요구에 의해서 실행된다. 규칙적으로 실행하기 위해서 scheduler 를 사용하며 background 에서 실행되기 위해서 thread 로 작동하는 경우가 많다. 이를 구현하기 위해서 몇가지 방법이 있는데, spring framework 에서는 1. 단순한 단일 작업이냐 아니면 2. 선/후행 작업으로 나눠지는 복잡한 작업이냐에 따라서 구현 방법을 달리한다. 전자의 경우 비즈니스 로직을 구현하고 thread 로 실행시킨다. 정기적으로 실행하는 경우는 scheduler 를 붙여서 구현한다...
Intellij Idea 에서 JUnit 사용하기. Intellij Idea 에서 JUnit 연동하고 사용하기. intellij 가 버전업이 되면서 기존에 maven 프로제트 생성했을때 main 과 같은 depth 에서 자동으로 생성되던 test 디렉토리가 사라졌다. 이제 단위테스트를 하기 위해서는 수동으로 test 디렉토리를 생성해주어야 한다. 개발환경 JDK 1.8 Spring Framework 4.3.7 RELEASE MAVEN 3 Windows 10 프로젝트 환경설정에서 src 밑에 test > java 를 생성하고 java 디렉토리를 Tests 로 설정을 해준다. 소스상에서 테스트를 원하는 클래스명 위에 커서를 올린다음 alt + enter 를 치면 메뉴가 출력되는데 그중에서 create test 로 테스트할 클래스를 생성한다. destinati..
Spring Framework 과 Redis 연동 Spring Framework 과 Redis 연동하기. NoSQL 이란 Big data 를 처리하기 위한 분산 데이터 저장소를 통칭하며, Redis 는 key-value 형태의 데이터 저장소를 지원하는 NoSQL 의 일종이다. CAP(Consistency, Availability, Partition Tolerence) 특징중에서 CP 에 더 가까운 고속의 읽기/쓰기에 최적화 된 모델이다. 개발환경 JDK 1.8Spring Framework 4.3.7 RELEASEMAVEN 3Windows 10 Windows 용 Server 구동 Redis 는 Linux, Unix, MacOS 는 지원하지만 Windows 는 정식으로 지원하지 않는다. Windows 용 서버는 개발/스터디 용도로만 사용해야 한다. ......
Spring Framework 과 RMI 연동 Spring Framework 과 RMI 연동하기. RMI 는 JDK 1.1 부터 추가되었고 한때는 CORBA, EJB 와 함께 분산 시스템을 구축하기 위한 기술로써 사용되었으나 Java 에 국한되는 단점이 있었고 SOA, ROA 등의 개념을 탑재한 다른 기술들이 널리 사용되면서 현재는 많이 사용되고 있지는 않다. server 를 POJO 형태로 간단하게 띄우는 방법도 있고 Spring Framework 에 통합되어 제공하는 방법도 있다. POJO 샘플은 Java 책마다 기본적으로 제공되므로 Spring Framework 과 통합해서 Server / Client 로 사용하는 방법을 정리한다. Spring Framework 에서는 RMI 기능의 많은 부분을 자동화해서 내부적으로 지원하며 개발자(사용자)는 ..
Spring Framework 과 ActiveMQ 연동 Spring Framework 과 ActiveMQ 연동하기. 간단한 비동기화 로직은 스프링에서 제공하는 async annotation 을 사용해서 처리가 가능한데 대용량 데이터를 비동기로 안정적으로 처리하기 위해서는 메시지 서비스의 일종인 ActiveMQ 를 연동해서 사용한다. 전체적인 process 를 간략하게 설명하자면, Application Server 에서 listener container 를 구현하고 구현한 listener 를 통해서 ActiveMQ 와 통신한다. Application Server 에서 listener container 로 domain object 를 던져주면 converter 에서 jms message 로 변환해서 ActiveMQ 에 전달하고 ActiveMQ 로 부터 받은 jm..
Spring Security Spring Security 스프링 2.x 버전 사용할때 security 살펴보고 10여년 만에 다시 볼려니 세월이 많이 지나서 다 잊어버렸고 실제 프로젝트에서는 spring security 보다는, authentication 은 자체 로직으로 처리하고 authorization 은 admin 에서 설정하는 방법을 많이 사용하다보니 spring security 는 점점 사용하지 않게 되었다. 이번 프로젝트에 spring security 를 적용해보고자 오랜만에 삽질을 하면서 article 을 정리해본다. 내가 원하는 기능은 1. 비밀번호 암호화해서 비교. - Sha256 을 이용한 암호화. 2. admin, user role 별로 페이지 접근 제어. 3. remember me 기능 적용. - 쿠키 또는 d..