정말 오랜만이네요. 요즘 정말 치열하게 회사생활을 하고 있습니다. 수많은 테스트 케이스 작업부터 UML 작업까지 나날이 지쳐가던 중, 오랜만에 개발업무를 진행했고 정말 재밌게 회사생활 중 입니다! 잡담은 여기까지 할게요. 다름이 아니라 요즘들어서 알고리즘과 관련된 공부를 다시 시작하고 있습니다. 물론 하나도 풀지 못했어요. 그래서 정말 기초로 돌아가서 시작하려 합니다. 여러분들도 Hello World 출력하던 때가 기억나시나요? 처음 사용할때는 정말 간단하게 컴퓨터에 Hello Wolrd가 출력된다는 사실 만으로도 신기했던것 같습니다. 일반적으로 저희가 Hello Wolrd를 출력하고 싶을 때는 아래와 같은 코드를 씁니다. public class Test { public static void main(S..
최근 외근이 잦아서, 포스팅을 할 여유가 없었네요... 저번 작업에 이어서, 여러가지 문제점이 파악돼서 조금 제대로 정리도 할겸 다시 정규식을 작성하려합니다. 저번에 사용된 정규식은 아래와 같습니다. String addReg1 = "(([가-힣]|\\d)+(동))+(([가-힣]|\\d)+(호))" + "|([가-힣]+(아파트))" + "|([가-힣])+(구)+([가-힣])+(동)"; 위와 같이 작성한 정규식에서 대표적으로 문제가 발생한 부분은 일단 공백을 인식 못했습니다. 거기에 더불어서 제대로 된 처리가 안되어있어서 인식 정확도가 많이 떨어졌습니다. 저대로 프로젝트에 적용했다면, 거의 100% 확률로 컴플레인이 들어올거 같았습니다. 그래서 정규식을 수정하게 됐는데 일단 결과물은 아래와 같습니다. Str..
프로젝트를 진행 중 주소지를 마스킹해야되는 상황이 생겼습니다. 물론 DB에 주소지 컬럼만 있었다면, 금방 끝날 작업이었지만, 문서전체를 탐색 후 주소지로 확인이 된다면, 마스킹처리를 해야해서 조금 폼이 들어갔습니다. 최초의 정규식은 아래와 같습니다. String addReg= "(" + "(([가-힣]+(d|)+(구|동))+([가-힣]+(d|)+(동|로|길|호)))" + "|([가-힣]+(아파트|빌라|빌딩))"+ "|(\\d)+(호)"+ ")"; 하지만 먼저 OR처리를 많이 하다보니 마스킹처리를 하지 않을 문장들도 마스킹처리가 되었고, 마스킹 처리를 ***동 ***호 형태로 작업할 예정이기에, 원하는 형태의 출력도 쉽지 않았습니다. 그래서 아래와 같이 세분화를 통한 작업을 진행했습니다. 정규식은 아래와 ..
상속클래스는 다음과 같이 상속받은 자식을 또 상속할 수 있다. 상속관계가 내려오면서 조금더 세분화 된다고 생각하면 될것같다.(동물)>(개)>(내가 키우는 개) 이런식으로 세분화 시켜서 조금더 구체적인 기능을 넣을 수 있다. 또 다른 특징으로는 자식객체는 두개의 부모를 가질 수 없다. 이는 개념적으로도 부모가 둘 일수는 없기 때문에 이런 관계는 성립되지 않는다즉. 자식클래스는 복수의 부모클래스를 가질 수 없다. 라고 이해하면된다. *클래스 내부는 볼 필요 없습니다(복붙해서)하지만 다음과 같이 한 부모는 여러개의 자식 클래스를 가질 수 있다. 이 또한 개념적으로 한 부모가 여러 자식들을 가질 수 있기때문이라고 이해하면 될것같다. 즉 상속의 특징을 간단하게 요약하면 1.자식클래스는 여러개의 부모클래스를 상속받..
자바에서 is-a 관계를 가지고 있는 클래스들을 상속관계라고 말한다. 다음 과 같은 구조를 가진 클래스를 만든다고 할때 Animal 클래스에서 문자열 name과 setName메소드가 선언이 되었는데, 밑에 Dog클래스는 문자열과 메소드를 선언하지 않았음에도 사용이 가능하다. 빨간색 박스를 보면 알겠지만 Dog타입의 새로운 Dog생성자를 만들었을뿐 Animal 클래스의 생성자를 만든게 아니다. 그럼에도 setName과 name을 여전히 사용할 수 있다. 이렇듯 상속관계는 이미선언되어있는 메소드를 굳이 다시 선언할필요없이 자식이 자유롭게 사용할 수 있는 구조이다. 이렇듯 편리한 기능이지만 상관관계를 생각해서 만들지 않으면 의미가 없다, 부모객체는 자식객체의 특성을 가지고 있지만 조금 더 넓은 개념(ex) 동..
다차원 배열을 사용하게 되면서 구조가 복잡해져서, 머리에서 바로 이 프로그램을 떠올리는 속도가 늦었다. 내가 사용한방법은 필요한 값들의 가장 큰 값을 생각하고 이를 그림으로 순차적으로 표현해서 그림을 참고하며 프로그램을 작성했다. 프로그램의 큰 틀을 일단 글로 작성했다. 1.반의 갯수 2.반 인원수 3.반 인원수에 맞춰 국영수 점수 입력(국영수 점수를 바탕으로 총점과 평균을 계산) 4.일괄 출력 import java.util.Scanner; public class Calculator { public static void main(String[] args) { int clasnum; String[][]name=null; int[][][]score=null; Scanner sc= new Scanner(Sys..
다이아몬드 구조를 가진 패턴을 for문을 활용해서 만들려고 한다. for문을 두개 활용하면, 간단하게 만들 수 있는 구조 이지만 하나의 for문을 가지고 다이아몬드 구조를 만들기는 어렵다. 그 이유는 다음과 같다. 중앙값(정 중앙의 별의 갯수) 이 5인 다이아몬드 패턴을 만들면, 빈 공간의 수는 2칸 1칸 0칸으로 줄었다가 다시 1칸 2칸으로 늘어난다. 그럼 for문이 루프함에 따라 루프수 2,1,0,1,2 가 나와야 하는데 일반적인 for문의 구조를 살펴보면서 생각해보자 for (int a=0;aa;b--); System.out.print(" "); } } 이 다중 for문에서 b값은 점점 감소하도록 구조를 만들었다. 이렇게 되면 루프수가 2,1,0 되서 앞의 빈공간을 만들 수 있지만, 1,2로 증가하..
- Total
- Today
- Yesterday
- git
- config
- consumer
- Feign
- prometheus
- elasticSearch
- LoadBalancer
- docker
- 운동
- Kafka Connect
- Gateway
- github
- Logstash 활용
- zipkin
- Spring + ELK
- ACTUATOR
- MariaDB
- rabbitmq
- 빅-오
- MSA
- 미래의나에게동기부여
- JWT
- UserService
- 루틴기록
- 오늘저녁 삼겹살
- Logstash to ElasticSearch
- kafka
- producer
- 운동일기
- springcloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |