본문 바로가기

분류 전체보기

순열 Permutation 알고리즘 {a, b, c, d} 로 순열을 만드는 것은 4! = 24개 {a, b, c, d}의 모든 순열 = 첫 원소가 a이면서 {b, c, d}의 모든 순열 + 첫 원소가 b이면서 {a, c, d}의 모든 순열 + 첫 원소가 c이면서 {a, b, d}의 모든 순열 + 첫 원소가 d이면서 {a, b, c}의 모든 순열 위의 식을 보면 함수를 recursive 하게 짤수 있다는 것을 알수 있습니다. 첫 원소가 a이면서 {b, c, d}의 모든 순열 = 앞에 고정된 원소 a, b 이면서 {c, d}의 모든 순열 + 앞에 고정된 원소 a, c 이면서 {b, d}의 모든 순열 + 앞에 고정된 원소 a, d 이면서 {b, c}의 모든 순열 여기서 앞에 고정된 원소 들을 prefix string 전체 원소를 set S라고.. 더보기
메세지 브로커, 메시지 큐 메시지 브로커란? 메시지 브로커는 Sender - Receiver 간에 메시지를 정의된 형식의 메시지를 전달하기 위해 작동하는 프로그램 모듈입니다. 소프트웨어 프로그램 간에 메시지를 전달하기 위한 네트워크의 구성요소입니다. 메시지 검증, 전달, 라우팅을 위한 설계의 구현체가 되겠으며, decoupling을 용이하게 하는 요소로 활용한다고 보시면 되겠습니다. 메시지 지향 미들웨어(Message Oriented Middleware : MOM): 분산 시스템 간 메시지를 주고 받는 기능을 지원하는 소프트웨어나 하드웨어 인프라 메시지 큐(Message Queue : MQ) : MOM을 구현한 시스템 브로커(Broker) : Message Queue 시스템 Producer(Sender) 가 Message를 Que.. 더보기
spring project groupid, artifactid 네이밍 GROUP ID group id는 프로젝트마다 구별할 수 있는 고유한 이름이다. 보통은 java의 패키지 네이밍을 따른다. ex) org.apache.maven, org.apache.commons 이 규칙이 강제적인 것은 아니다. groupid에 많은 하위 group을 만들수 있는데 좋은 방법은 프로젝트 구조로 만드는 것이다. 만약 프로젝트가 멀티 프로젝트가 된다면, 새로운 식별자만 부모의 groupid 뒤에 붙이면 된다. ex) org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting ARTIFACT ID artifactid는 jar파일에서 버전 정보를 뺀 이름이다. 소문자를 사용하고 이상한 특수문자는 사용하지 않는다. ex) mav.. 더보기
Native application, Web application 차이점 Web application이란 인터넷과 인트라넷 등의 네트워크를 통해서 Web 브라우저를 사용하고 조작하는 애플리케이션을 의미합니다. 브라우저에서 애플리케이션에 접근하면, 네트워크상에 있는 Web 서버에서 프로세싱 하고 프로세싱 결과를 브라우저에 표시합니다. 서버에 대한 네트워크 통신이 가능한 환경에서 브라우저만 있으면 접근할 수 있기 때문에 컴퓨터, 스마트폰/태블릿 등 플랫폼에 관계없이 이용할 수 있습니다. 네이티브 애플리케이션은 단말기에 설치하여 실행하는 애플리케이션을 말합니다. 예를 들어 Android 단말기라면 play store에서 iPhone이라면 App store에서 필요한 애플리케이션을 선택하여 다운로드/설치하여 이용하게 됩니다. 또한 동영상 소프트웨어나 오피스 소프트웨어처럼 컴퓨터에 설.. 더보기
ROUND(), TRUNCATE() 반올림과 버림 함수~ ROUND(para1, para2) - para1을 para2가 양수면 소수점 para2 + 1번째 자릿수에서, 음수면 -1은 1의 자리 -2는 10의자리 에서 반올림 TRUNCATE(para1, para2) - para1을 para2가 양수면 소수점 para2 +1번째 자릿수부터 (para2 반드시 넣어야함) 음수면 -1은 1의 자리 -2는 10의 자리부터 버림 SQL ROUND select round(3456.1234) from table // 3456 select round(3456.5678) from table // 3457 select round(3456.5678, 2) from table // 3456.57 select round(3456.5678, -2) from table // 3500 T.. 더보기
@Data 어노테이션 클래스 레벨에서 @Data 어노테이션을 붙여주면, @Getter ,@Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션 입니다. 접근자, 설정자, final 또는 @NonNull 필드 값을 파라미터로 받는 생성자, toString, equals, hashCode 메소드가 자동으로 만들어 집니다. cf) @NonNull = 파라미터나 메소드 위에 붙어 null이 아닌 값이 매개변수 거나 return 값이어야 한다. 더보기
텍스트를 로고 이미지로 무료 사이트~ https://cooltext.com/ Cool Text Graphics Generator Cool Text is a FREE graphics generator for web pages and anywhere else you need an impressive logo without a lot of design work cooltext.com 원하는 느낌의 로고를 선택후 text만 바꿔주면 로고가 생성된다. 무료다~ 더보기
5장 1. Logback 우리가 만들거나 사용하는 프로그램들은 다양한 로그를 남기고 있습니다. 이러한 로그는 개발 및 유지보수, 에러확인 등 애플리케이션 전반에 걸쳐 사용 될수 있습니다. 몇년 전에 자바 프로젝트에서 가장 많이 사용되는 로그 라이브러리는 Log4j 였습니다. Log4j의 개발자는 Log4j를 토대로 Logback을 만들었습니다. 장점 오랫동안 널리 사용되고 검증된 Log4j를 기반으로 작성 광범위한 테스트를 통해 검증 로그 설정이 변경될 경우 서버를 재시작 하지 않아도 반영 더보기