본문 바로가기

분류 전체보기

(101)
Angular js Angular js 를 사용할 때 View에서 사용하는 scope 제어를 위해 Controller를 작성하고 기능별 모듈화한 Service를 작성한 다음 Controller에 주입하여 사용하게 됩니다. 1. Socket, $broadcast 이때 Service 에서 Controller를 호출해야하는 상황이 생길 수 있습니다. WebSockets과 같은 경우인데, 이런경우 broadcast를 통해서 전체 앱에 이벤트를 시키고 필요한 파라미터를 같이 넘겨줍니다. 특정 scope을 전달하면 Service와 Controller간에 의존성을 가지므로 좋은 방법이 아니기 때문입니다. 이 이벤트를 처리해야하는 Controller에서 scope.on을 사용하여 해당 이벤트를 받으면 의존성 없이 서비스에서 이벤트 발생된..
RethinkDB 1. 특징 RethinkDB 는 리얼타임 웹에 최적화된 오픈소스 데이터 베이스입니다. WebUI 를 통해 관리 콘솔을 제공하며 이를 통해 서버 성능, 쿼리테스트 테이터 테이블 등을 관리할 수 있습니다 그외에도 아래와 같은 특징들이 있습니다. 1) json 기반의 데이터베이스입니다. 2) 푸시기반 3) 확장이 쉬운 분산데이터베이스 primary key primary key의 데이터 타입은 string 입니다. 하지만 time, binary object, boolean, array 형식도 가능합니다. 타입을 섞어서 사용해도 되지만 모든 값들은 고유해야합니다. 배열을 primary key로 사용할때에는 primary key가 compound index 처럼 행동할 수도 있습니다 2. 실행 RethinkDB는 ..
암호화 로그인, 비밀번호 수정 기능 구현에 앞서 암호화 알고리즘에 대해서 정리해보도록 하겠습니다. 1) SHA-256 SHA-256 은 동일한 문자열에 대해 동일한 다이제스트를 출력합니다. 다른 문자열인 경우 다른 다이제스트를 출력하게됩니다. 이때, 동일한 문자열을 누군가 입력해서 비교하게 되면 해킹이 가능하므로 서버단에서 원본 문자열에 "특정문자열"을 추가하여 암호화를 하게 되면 더 안전하게 됩니다. 이 "특정문자열"을 salt라고 합니다. Node js 에서 이 기법을 적용하기 위해선 bkfd2Password 라이브러리를 사용하면 됩니다. 작성 예시는 아래와 같습니다. var hasher = bkfd2Password(); hasher({password:password},function(err,pass,sal..
이차원 배열 정렬 이차원배열에서 2번째 인자, 즉 인덱스1에 대해 정렬하고자 할 때의 방법입니다. int[][] conference = {{10,1000},{5,2000}} Arrays.sort(conference, new Comparator() { @Override public int compare(final int[] entry1, final int[] entry2) { final Integer time1 = entry1[1]; final Integer time2 = entry2[1]; return Integer.compare(time1,time2); } }); Compartor를 이용하여서 1번째 인덱스를 이용하여 비교할 것임을 선언해주면 됩니다.
OpenSTF #3 오늘은 openstf ui를 변경하고 build하는 방법에 대해서 작성해보겠습니다. 사전조건 openstf 설치가 다끝나고 정상적으로 실행되고 있는 상태 이전까지는 npm install을 통해서 stf 관련 module설치 및 실행을 진행했습니다. 하지만, 개발을 하기 위해서는 npm이 아닌 git에서 받는 파일이 필요합니다. 설치 방법 git 에서 프로젝트를 다운로드 받습니다. cd [다운 받을 경로] git clone github.com/DeviceFarmer/stf.git 다운로드 완료되었다면, sudo 가 아닌 npm을 통해서 node_module을 설치하겠습니다. npm install npm link 실행 EACESS permission error 발생 저는 mkdir, rmdir, access..
ubuntu Nginx proxy 설정 /etc/nginx/sites-available 에서 설정하게 됩니다. server{ location / { proxy_pass http://localhost:7100 } } sudo service nginx reload : nginx 서버 재시작
openldap with ldapjs openldap을 이용해서 인증을 구현한 프로젝트를 진행중입니다. 진행하면서 ldapjs 를 이용해서 ldap서버와 connect, bind, modify 등등을 수행했습니다. 오늘 글에서는 ldapjs 를 이용하여 사용자를 찾고, 비밀번호 수정하는 방법에 대해 작성하겠습니다. Modify modify를 하기 위해선 ldapadmin 계정으로 ldap 서버에 접속해야합니다. 이렇게 하지 않으려면 각 사용자 계정으로 접속해야하는데, 아직 이 방법은 찾지 못했습니다..ㅠㅠ 저는 admin으로 접속해서 modify를 수행했습니다. 이때 생각해야할 것은 암호화 방식입니다. 제가 생각할때, 암호화는 node js 즉, backend 단에서 이뤄지고 나서 openldap 서버로 전송되어 저장되는게 맞다고 생각하는데..
spring boot & JPA 프로젝트 생성 (JDBC는?) 기존에는 JDBC를 통해 Database의 데이터를 조작하곤 했습니다. 여기서 JDBC란 JAVA 언어와 Database를 이어주는 라이브러리입니다. java 에서 JDBC 를 사용하고 싶다면 dependency를 이용하면 됩니다. 하지만, 보다 객체지향적이며 코드 재사용이 가능한 방법이 있습니다 바로 ORM을 이용하는 것인데요. hibernate, jpa와 같은 ORM은 자바 객체를 sql 데이터 베이스의 테이블에 자동으로 영속화 해주는 기술입니다. JPA 프로젝트 셋팅 sts 를 이용해서 spring boot를 사용하겠습니다. dependency 설정 dependency 를 설정해주고 나면, 이제 annotation을 설정해줍니다. annotation설정 post라는 테이블에서 annotation 설..