Latest Posts · Page 5 of 6
Spring MVC에서 페이스북 소셜로그인 구현

개인 프로젝트에서 페이스북 소셜로그인을 구현하려는데 해보니까 진짜 쉽지만 초반에는 하루 이틀정도 헤멨던 것 같다. Spring.io에서 예제들을 열심히 찾았지만 Spring boot 사용을 전제로 해서 내놓은 것이라서 예시에서는 자동적으로 되던 것이 당연히 내 프로젝트에서는 안됐고 적지않은 구글링을 했어야 했다.

Read
Node.js 웹 애플리케이션을 Heroku에 Deploy 하기

Node.js Express 앱 생성 후 루트에 Procfile(web: node ./bin/www)을 추가하고, 라이브러리는 반드시 npm install --save로 설치하여 package.json 의존성을 정확히 관리해야 Heroku Deploy 시 오류가 없다. Heroku 대시보드에서 앱 생성 후 CLI로 heroku git:remote로 원격 Repository를 설정하고, git push heroku master 한 번으로 프레임워크 자동 탐지 및 Deploy까지 완료된다. 설정이 극히 간단하여 프로토타입/테스트 용도로는 훌륭하나, 해외 서버 위치로 인한 응답 지연, Sleep 모드 자동 전환, DB 성능 문제 등으로 정식 서비스는 유료 플랜 전환이 필요하다.

Read
Filter를 사용한 XSS(Cross-Site Scripting) 처리

HttpServletRequestWrapper 를 상속한 확장 클래스를 만들어 getParameter, getParameterValues, getHeader 메서드를 오버라이드하고, 네이버의 lucy-xss-filter 라이브러리로 Escape 처리한 값을 리턴하도록 구현한다. lucy-xss-filter는 XssPreventer(단순 문자열 전체 Escape)와 XssFilter(HTML 태그가 필요한 본문은 스크립트만 선별 필터링) 두 가지를 제공하며, 파라미터명이 content로 시작하면 XssFilter를, 그 외에는 XssPreventer를 적용한다. Spring의 OncePerRequestFilter 를 상속한 CrossSiteScriptingFilter를 만들어 GET/POST 요청에만 XSS 필터를 적용하고, web.xml에 등록하면 비즈니스 로직에 손대지 않고 일괄 처리가 완성된다.

Read
OSX 엘 캐피탄에서 iPython Notebook 설치

OSX 엘 캐피탄에서 pip install "ipython[notebook]" 시도 시 오류가 발생하는데, 이는 엘 캐피탄의 보안 설정으로 인해 내장 Python 환경에서 패키지 설치가 제한되기 때문이다. easy_install로 Numpy/Pandas 등은 설치되지만 ipython 설치 시에는 여전히 오류가 발생하므로, /usr/local 디렉터리 퍼미션 조정 후 Homebrew로 Python을 재설치하는 것이 올바른 해결책이다. Homebrew로 Python 재설치 후 sudo pip install "ipython[notebook]" 을 실행하면 정상적으로 설치된다.

Read
AWS Essentials

AWS는 온디맨드 기반의 클라우드 서비스로, 서버·스토리지·네트워크를 API로 유연하게 확장/축소하며 사용한 만큼 비용을 지불하는 구조이다. EC2, EBS, S3, RDS, DynamoDB 등 다양한 서비스와 Auto Scaling, ELB를 통해 확장성과 고가용성을 확보할 수 있다. 클라우드는 초기 비용 절감과 운영 편의성이 있지만, 보안·비용 관리·벤더 종속성 등 고려사항이 있으며 이중화 설계가 중요하다.

Read
Node.js와 Oracle DB 붙이기

Node.js에서 Oracle DB 연동은 다른 DB보다 복잡하며, Instant Client 설치와 환경변수 설정이 필수적이다. oracledb 모듈 설치 과정에서 컴파일러, Python 버전, 라이브러리 경로 등 다양한 의존성 문제를 해결해야 했다. 여러 오류를 해결한 후 Node.js에서 Oracle 쿼리를 정상 실행하며 연동에 성공했다.

Read
Webtob와 Node.js 연동하기

기존 서버에서 80포트를 이미 사용 중인 상황을 해결하기 위해, Webtob의 리버스 프록시 기능으로 80포트 요청을 Node.js 애플리케이션(예: 3000포트)으로 전달하는 방법을 적용했다. Apache 사례는 많았지만 Webtob 연동 자료는 드물어 직접 문서를 확인했고, http.m의 VHOST와 REVERSE_PROXY 설정만으로 비교적 간단하게 구현할 수 있었다. 설정 후 http.m를 컴파일하고 Webtob를 재시작하면, 별도 포트번호 없이도 80포트로 Node.js 서비스에 접근할 수 있다.

Read
Node.js 설치

Node.js 설치는 압축 해제만으로 간단히 가능하며, 프로젝트에서는 오라클 연동 문제로 최신 버전 대신 0.12 버전을 사용했다. Node.js 실행 디렉터리에서 간단한 JS 파일을 작성하고 node 명령어로 웹서버를 구동하는 방법을 실습했다. 서버 실행 후 브라우저에서 IP와 포트로 접속하여 Hello World 페이지를 확인하며 정상 동작을 검증했다.

Read
Webtob 설치

Node.js 기반 웹 애플리케이션을 Webtob 프록시 서버와 연동하여 80포트 요청을 Node.js로 전달하는 개발 환경을 구성했다. CentOS 7 환경에서 Webtob를 설치하고, 권한 설정·환경변수·라이선스 적용 등 서버 실행을 위한 설정 과정을 수행했다. wscfl, wsboot, wsdown 등의 명령어를 통해 Webtob 서비스를 관리하며 실제 구동 환경을 구축했다.

Read
Node.js 프로그래밍 과정 5일차

Redis는 key:value 기반의 NoSQL 저장소이며, set/get 같은 기본 명령과 publish/subscribe를 통해 메시지 송수신 기능도 제공한다. 예제에서는 한쪽에서 subscribe로 채널을 구독하고, 다른 쪽에서 publish로 메시지를 보내 실시간으로 수신하는 Pub/Sub 동작을 실습했다.

Read
블로그에 새로운 글이 발행되었습니다.