며칠 포스팅을 못했네요. 무언가를 꾸준히 한다는 건 참 어려운 일 같습니다.오늘은 간단히 List 에서 현재 요소의 앞에 요소에 접근할 때 graceful 하게 할 수 있는 방법입니다. 가독성에 중점을 둔 부분입니다. 1.for 문12345678910111213141516171819202122import java.util.ArrayList;import java.util.List; public class ListTest { public static void main(String[] args) { List animals = new ArrayList(); animals.add("cat"); animals.add("dog"); animals.add("mouse"); animals.add("tiger"); ani..
웹 개발 프리랜서 [각주:1]십여년 넘게 해오면서 느낀 점에 대해서 적어 보려 합니다.당연히 이곳에 작성한 글이 정답이 아닐 수도 있습니다.하지만 웹 개발 프리랜서를 처음 시작하시고 계약하시는 분들을 위해 조금이 남아 도움이 되는 마음에 글을 남겨 봅니다. 개인정보처리기사를 취득해라 프리랜서 개발자를 구분할 때 초급, 중급, 고급, 특급 등으로 구분하고 그에 따라 급여가 정해집니다.정보처리 기사를 가지고 있을 경우에 등급 산정에 유리합니다.(역으로 없을경우 인력업체에서 그 부분으로 트집을 잡습니다.) 소프트웨어 진흥법 시행령 보기 (페이지 이동후 20965호 검색하시면 기술자 등급표를 확인할 수 있습니다.) 12개월을 일해라 프리를 선택하게 되는 큰 이유중에 하나가 금전적 이유입니다. 그런데 프리랜서를 ..
얼마전 프로젝트에서 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/
"자바에서 항상 Call By Value 입니다." 결론부터 말하자면 그렇습니다.자바에서 값을 전달할 때 Call By Value 인지 Call By Reference 인지는 수많은 커뮤니티, 블로그에서 이야기 돼온 해묵은 주제입니다.이번 포스팅에서는 복잡하고 아리송한 이야기는 빼고 자바는 왜 Call By Value 이고 어떻게 동작하는지에 대해서 이야기해보겠습니다.그럼 이하 예제 소스로 확인해보겠습니다. Person.java1234567891011121314151617package info.m2sj.pass; public class Person { private String name; public Person(String name) { this.name = name; } @Override public..
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..
자바에서 디렉토리 삭제시 하위디렉토리들이 파일이 존재할 경우에는 재귀적으로 삭제 처리할수밖에 없습니다.(단 Runtime으로 native 명령어를 직접 실행해서 삭제할수 있습니다. 하지만 보안적 위협이 됩니다.) Java8 에서는 NIO2 와 Stream API 를 사용해서 Beautiful 하게 삭제처리를 할수 있습니다.123456789101112131415161718192021222324package com.example.demo; import java.io.File;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.Comparat..
- Total
- Today
- Yesterday