코딩도장이라는 사이트가 있습니다.http://codingdojang.com/ 각종 알고리즘 퀴즈를 풀수 있는 곳 이죠 요즘 다시 문제들을 풀어보고 있는데 난이도 lv1 문제중에 이런 문제가 있더군요 "0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오" 위에 내용을 정규식으로 한번 풀어 봤습니다.1var regex = /^(?=\d*0)(?=\d*1)(?=\d*2)(?=\d*3)(?=\d*4)(?=\d*5)(?=\d*6)(?=\d*7)(?=\d*8)(?=\d*9)\d{10}$/;cs 전방탐색을 이용한 방법이고 이것을 응용하면 보통 많이 쓰는 패스워드 양식을 검증하는 정규식도 만들어 낼수 있습니다.
개발을 하다 보면 IP 처리를 위한 여러 가지 작업을 할 때가 있습니다. 그럴 경우 사용 가능한CIDR 주소체계에 대한 계산을 해주는 유틸 클래스가 있어 소개해 보려 합니다.해당 CIDR의 시작 IP, 끝IP, Broadcast IP, Network IP,IP 포함 여부등을 확인할 수 있습니다. SubnetUtils maven commons-net commons-net 3.6 SubnetTest.java1234567891011121314151617181920212223242526package subnet; import org.apache.commons.net.util.SubnetUtils; public class SubnetTest { public static void main(String[] args)..
스프링의 의존성 주입, (필드 vs 생성자)스프링의 의존성 주입방법에는 여러 가지가 있지만 아마 가장 많이 쓰이고 있는게 @autowired 를 통한 필드 주입일 것입니다. 하지만 여기서는 생성자 주입을 이용했을 때의 장점을 알아보겠습니다. 아래는 각각의 의존성 주입을 위한 간단한 샘플 코드 입니다. Field injection123456public class Member { @Autowired private ProductService productService;} Colored by Color Scriptercs Constructor injection12345678public class Member { private final ProductService productService; @Autowired ..
얼마전 프로젝트에서 Cubrid 에서 MySQL로 DB 를 변경해야 했습니다.도메인 규모가 크지 않기에 쉽게 생각했는데 rownum과 sequence 오브젝트를 MySQL 에서는 사용 불가능했습니다. 이미 거의 구축이 끝난 상태인데 몇몇 부분의 수정이 불가피 했죠.MySQL 에서 rownum과 sequence 대체해보는 방법을 알아보겠습니다. 1.Rownum 사용하기Cubrid (as-is) 12SELECT rownumFROM [테이블명]cs Mysql (to-be) 12SELECT (@rownum := @rownum + 1) AS rownumFROM [테이블명], (SELECT @rownum := 0) r;cs 2.Sequence 사용하기Cubrid (as -is) -Next1234SELECT [시퀀스..
Spring Boot 로 웹 개발을 하다 보면 *.properties, *.yml 등과 같은 별도의 설정파일을 두게 됩니다. 주로 외부 서버 연결정보 , DB 연결정보 등과 같은 정적 정보가 들어가게 됩니다.그중에는 DB 접속이 가능한 계정, 패스워드처럼 민감한 정보가 있을 수 있습니다.그래서 몇몇 회사 같은 경우에는 아래와 같이 프로퍼티파일에 연결정보와 같은 주요정보가 발견되면 소스 보안 진단시 문제가 발생합니다. example.properties...db.user = scottdb.password = titger... 그럴경우 실제 패스워드나 아이디에 대해서 암호화를 처리를 해야 되는데 Spring Boot와 연동해서 쉽게 사용할 수 있는것이 Jasypt 라이브러리 입니다. (물론 Spring Boo..
vectr 는 온라인(웹브라우저)에서 이미지 편집이 가능한 서비스입니다. 중요한건 이좋은 서비스를 무료로 제공한다는 것이죠^^(요즘은 정말 좋은 툴들이 무료로 제공되고 있는것 같습니다. 감사한일입니다.)다운로드에서 설치방식도 역시 제공하고 있습니다. 회원가입후 작성한 이미지들은 클라우드형태로 보존할수도 있습니다.이미지로 다운로드 받을수도 있고 단축URL 형태로도 제공합니다.저같은 경우 사내에서는 이미지 첨부가 불가능하기 때문에 사내 이미지작업후 블로그 업로드시 단축 URL 형태로 사용하고 있습니다.그럼 자세한 내용은 아래링크를 따라가시면 됩니다. https://vectr.com/
Git 을 사용하다가 보면 특정 파일이나 폴더를 버전관리 대상에서 제외시켜야 할 때가 있습니다.뭐 .git 폴더 밑에 .gitignore 파일을 이용하면 됩니다.그런데 여기서 문제가 윈도우에서 .gitignore 파일을 만들려다 보면 "파일 이름을 입력해야 합니다."라는 메시지가 발생합니다. 말그대로 파일이름을 입력안해서 발생합니다.그럴경우 당황하지 마시고 맨 뒤에다가 . 마침표 하나를 추가 해주세요.gitignore.
유니스 명령어나 기타 많은 커맨드 명령어가 아래와 같은 형태를 띄게 됩니다.find /usr/local -type f -name "member" -exec ls 개발을 하다보면 경우에 따라서 공백을 기준으로 배열에 담아야 할 경우도 종종 생기게 됩니다.자바스크립트에서 위 명령어 문자열을 공백을 구분해서 나누어 담는다면 split 메소드와 정규식을 이용해서 아래와 같이 쉽게 처리할수 있습니다. 1234567var command = 'find /usr/local -type f -name "member" -exec ls' var comSplit = command.split(/\s+/); //정규식 \s+ 한개이상의 (공백) console.log(comSplit); Colored by Color Scripter..
자바스크립트의 얕은 복사 깊은 복사를 설명하기 위해서 먼저 자바스크립트 Data Type 무엇이 있고 어떻게 동작하는지 아는것이 중요합니다. 이부분이 머릿속에 잘정리 돼있으면 깊은 복사 얕은 복사를 이해하는데 도움이 됩니다. 1.자바스크립트 Data Type자바스크립트에서 자료형은 아래와 같이 크게 기본형(Primitive Value) 과 참조형(Reference Type) 2가지로 나눌수 있습니다.각 유형의 상세 설명은 링크를 참고해주세요 (https://developer.mozilla.org/ko/docs/Web/JavaScript/Data_structures) 기본형 (Primitive Value)BooleanNullUndefinedNumberString 참조형(Reference Type)Objec..
- Total
- Today
- Yesterday