개발자취 148

JAVA 기초다지기 (1) - Java Overview

개요 사실 학부 때는 C++과 파이썬만 배우고 사용하였다. 졸업 후 SSAFY를 하면서 자바라는 언어를 처음 접했고, 대강 배워 프로젝트를 진행하였다. C++ 짬밥이 있기 때문에 사용하는데 어렵지는 않았지만 C++과는 다른 점이 많았기에 회사에서 개발을 하면서 스스로 부족한 점을 느꼈다 마침 사내 교육사이트가 개편되어 다양한 플랫폼에서 강의를 들을 수 있게 되었고, 그 중 러닝스푼즈의 20년차 개발자의 실무 개발 노하우를 담은 JAVA 기초 라는 말에 끌려 바로 신청하게 되었다. 총 18강 열심히 달려볼 예정이고, 중요하다고 생각되는 내용을 블로그에 정리할 예정! JAVA 언어의 특징 JAVA 설명은 생략한다... JAVA 개발 도구 JDK(Java Development Kit) : 자바 개발 도구로 J..

공부는 하지만 정리는 하기싫어

마지막 블로그 글을 쓰고 난지 3개월정도가 지난 것 같다.. 글을 쓸 소재나, 시간은 넘쳐나지만 스스로 지정한 템플릿을 다 채워야 한다는 것에 부담이되서 스스로 게을러지기를 택한 것 같다. 그렇기 때문에 이제 부터 게시글은 좀 더 자유로운 형식으로 작성하기로 스스로 결심했다. 과연 몇일이 갈지 잘 모르겠지만 일주일에 적어도 1개는 올릴려고한다. 제발,,, 그다시 한번 맘먹고 회사에서 공부한 것들이나, 자바 스터디를 통해서 공부한 내용을 간단히라도 올릴려고한다.

생각생각생각 2022.06.26

서버개발자로서 살아남기 - 로드 밸런서(Load Balancer)

내가 피파와 같은 축구 게임을 만든 개발자라 가정해보자. (뜬금없지만 로드 밸런서를 알기 위한 사전 설명이다.) 평소 동시 접속자 수는 100명이지만 월드컵 기간에는 1000명으로 늘어 났다. 갑작스럽게 1000명으로 사용자가 늘어나, 서버가 터져버릴 수도 있는 상황이다. 서버 개발자로서 할 수 있는 방법은 뭐가 있을까? Scale-up 말 그대로 서버의 성능을 높이는 방법이다. 예를 들자면, 디스크를 추가하여 용량을 증가하거나, CPU를 추가하여 속도를 높이는 것이다. Scale-out 비슷한 서버의 개수를 추가하는 것이다. 이는 용량이 증가할 뿐만 아니라, 트래픽을 분산하여 성능을 높일 수 있다. 위와 같은 2가지 방법이 있는데, 대부분의 기업들은 비용문제, 확장성과 유연성의 문제로 Scale-out..

ELK - 로그 발생 시간을 기준으로 Kibana 사용하기

🔍개요 ELK를 서버 로그를 분석하기 위해 구축한 이후에 Kibana 시간과 로그 발생 시간이 달라, 보기 불편한 점이 있었다. 이후, 문제를 해결하려 했으나, 여러 프로젝트를 진행 한 탓에 미루고 또 미뤘었다. 프로젝트가 끝나고, ELK 업무를 마무리 짓기 위해 새로운 서버 2대를 ES 클러스터에 추가하는 작업과, 로그 발생 시간에 대한 이슈를 처리하는 작업을 진행하였다. 로그 발생 시간을 Kibana @timestamp로 사용하기 로그 메시지에서 로그 발생 시간 파싱하기 (logstash 설정 변경) 서버팀에서 사용하고 있는 로그 메시지 시간 type은 ISO8601인데, grok패턴에서 TIMESTAMP_ISO8601 사용하면 쉽게 파싱할 수 있다. ## 원하는 filter가 있으면 설정한다. fi..

서버 개발자로서 살아남기 - hosts 파일

🔍개요 평소처럼 swagger에 접속하려 했는데 403 오류가 발생하였다. 해당 담당자에게 문의한 결과 프록시 서버 설정 때문에 그런거고, hosts 파일에서 특정 내용을 추가 요청하였다. 처음에는 hosts 파일이 프로젝트 안에 있는 파일이라 생각하였다. 그치만 보이지 않았고, 인터넷에 처본 결과 내 생각과는 다른 파일이였다. 모르는건 바로 정리들어가야징 🔍hosts 파일이란? hosts 파일은 ip 주소와 도메인을 매핑해주는 파일이다. 우리가 자주 사용하는 도메인을 ip 주소로 변환하는 역할을 하는 것은 DNS Server이다. 그러나 DNS Server을 안거치고 Local에서 설정하는 방법이 바로 hosts 파일을 이용하는 것이다. hosts 파일의 우선순위가 DNS Server 보다 높기 때문에..

FileBeat VS Logstash

🔍개요 회사에서 기존 서버에 ELK 환경을 구축하는 업무를 받았다. Docker를 이용해서 ELK를 구축하면서 어느정도의 개념을 익혔으니 실제로 머신 2대를 받아서 ELK를 구축하려 했다. 이제 사용중인 기존 서버에 적용하려다 보니까 생각해야될 점이 많았다. 가장 먼저 생각이 드는건 트래픽 문제였다. 많은 트래픽이 ES로 들어올 텐데 어떤식으로 설계를 해야 트래픽을 감당할 수 있을까를 많이 생각했다. 그중 하나가 'logstash와 filebeat 중에 어떤 것을 사용할까' 였다. 이에 대해 알아본 내용을 정리해볼려한다. 🔍 FileBeat vs Logstash Filebeat의 사용 여부 요즘 ELK를 구축하는 방법을 찾아보면 각 서버에 Filebeat를 통해 로그 데이터를 수집하고 logstash로 ..

서버 개발자로서 살아남기 - 프록시(Proxy)란?

🔍개요 회사에서 다른 팀이 진행하던 프로젝트를 우리 팀이 하게 되었다. 그래서 인수인계 및 가이드 회의를 진행하던 중 프로젝트 구성도에 HA프록시(Proxy)가 있었는데, 어떤 느낌인지만 알고 자세히는 모르는 용어였다. 찾아보니, HAProxy를 알기 위해서는 Proxy와 Load Balance의 개념을 알아야 하는데, 하나씩 정리할 예정이다. 먼저 Proxy 부터! 🔍프록시(Proxy)란? 프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 위키백과의 ..

ELK 권한 문제 - ERROR Unable to loc ate appender "rolling" for logger ...

에러 메세지 다른 사람들 보니까 아래 에러메세지와 같이 2줄만 나오는게 아니라 여러줄이 나오는 경우가 많다. Sep 23 17:31:11 A04-R08-I245-163-BCPLLP2 elasticsearch[35226]: 2019-09-23 17:31:11,052 main ERROR Null object returned for RollingFile in Appenders. Sep 23 17:31:11 A04-R08-I245-163-BCPLLP2 elasticsearch[35226]: 2019-09-23 17:31:11,052 main ERROR Unable to locate appender "rolling" for logger config "root" Sep 23 17:31:11 A04-R08-I245-..

프로젝트에 Docker를 활용한 ELK 적용하기

Intro 회사에서 첫 프로젝트로 ELK 시스템을 개발 서버에 적용하고, 테스트하여 기존의 로그 수집 시스템과 비교하는 것을 진행했다. 기존의 회사 서버에 적용하는 것에 대해 부담이 있었지만 다른 회사에서도 많이 사용하는 오픈소스기도 하고, 정보도 많기 때문에 적용하는 것은 어려운 부분이 없었다. Docker를 사용하는 이유 Docker를 이용할 수 있는 모든 플랫폼에서 동일한 방식의 적용이 가능하다. 로컬 서버에 적용할 예정이기 때문에 편의상 ELK를 한번에 도커 컨테이너로 띄우기 위함이다. 도커 설치 방법 프로젝트와 연동하기 1. logback.xml 설정 logback.xml 파일에 appender를 이용하여 logstash를 추가해준다. (logback.xml 설정에 대해) 127.0.0.1:50..

백준 1학년 - (C++)

문제 : https://www.acmicpc.net/problem/5557 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제설명 탐색문제일까 싶었지만 N이 100이면 최악의 경우가 2의 99승까지 가기 때문에 무조건 DP로 풀어야 한다고 생각했다. 근데 DP의 가장 큰 문제는 점화식을 찾기 어렵다는 것이다. 30분 정도 고민해 봤지만 역시 생각해내기 어려워 다른 사람 풀이를 참고하였다. 알고리즘 핵심 변수는 dp[N][21] 인데 'N번 째 일 때 값이 0이상 20이하 이다.'를 나타낸 것이다. 이해하기가 쉽지 않은데 이 그림을 보면 이해하기 쉬울 것이다. 아래와 같은 예제가 주어졌을 때 5 9 3 3 3 ..

728x90