본문 바로가기

전체 글

[Linux]netstat 네트워크 성능 분석 netstat은 접속되어있는 서비스들의 네트워크 상태를 표시하는데 사용한다. 네트워크접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여준다. 주로 서비스의 포트가 열려있는지 확인할 때 쓴다고 한다. 옵션 -l : 연결 가능한 상태( Listen ) -n : 포트넘버 ( number port ) -t : tcp (tcp) -u : udp (udp) -p : 프로그램 이름(pid) -r : 라우팅테이블 -s : 네트워크통계 -i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인 -a : 모두 netstat 상태값 State Description CLOSED 완전히 종료된 상태 CLOSING 흔하지 않으나 주로 확인 메시지가 전송 도중 유실된 상태 UNKONWN 소켓의 상태 태가 온술 수 없음 E.. 더보기
[MySQL]누적합계구하기 서비스 운영 중에 운전자의 주행거리를 가지고 일정 금액을 부과해야하는 처리가 필요했다. 그런데 부과해야하는 금액이 만약 100KM이상 주행할 경우에는 더 이상 부과하지 않는다는 비즈니스 사항을 포함하고 있었다. 즉, 'A'라는 사람이 130KM를 탔다면 30km에 대해서는 부과료를 매기지 않는 것이다. 실제로는 A라는 사람이 주행을 10번 했다고 가정하고, 그 중 5번째 주행을 80KM ~ 130KM를 탄다면 80KM부터 100KM까지의 20KM에는 부과료를 내야하고, 6번째부터 주행에는 금액이 부과되지 않는 방식이었다. 위 비즈니스 로직을 반영하기 위해선, 'A'라는 운전자의 주행 건별 누적주행거리와 부과료가 책정되는 거리를 각각 구했어야 했다.(Mission) [테스트 데이터 생성] 주행데이터가 위와.. 더보기
[MySQL]Mac에 MySQL 설치 순서 1.homebrew설치 2.MySQL 설치( homebrew 이용 ) Homebrew 설치 Homebrew 사이트 접속 https://brew.sh/ Install HomeBrew 에 안내되어 있는 명령어를 터미널에서 실행해준다. 위 명령어를 입력하고 다운로드 될 때까지 대기. 설치 완료 여기서 끝이 아니라 Next steps : 에 표기된 명령어를 실행해주어야 한다. 설치된 homebrew의 버전확인 brew --version MySQL 설치 MySQL 설치명령어 입력 brew install mysql 접속 mysql -uroot ..을 시도하였으나 위와 같은 에러가 발생하였다. 서칭을 통해 알아보니 다음과 같이 mysql을 실행하는 명령어가 있다는 것을 확인하였고, 많은 사용자가 겪는 문제인듯 .. 더보기
[MySQL]연령대별 인원 수, 비율 구하기 주민등록번호를 기반한 만 나이를 기준으로 유저의 10대, 20대, 30대, 40대, 50대 인원 수와 비율을 구하는 쿼리이다. 해가 바뀌어 나이는 매번 변하므로 주민등록번호를 가지고 만 나이 값을 구해야했다. 먼저 만 나이 값을 뽑은 것을 기준으로 다음 연령별 구분을 할 수 있기 때문에, 만 나이 구하는 테이블을 전처리한다. age_group - 연령구분 count - 인원 수 % - 비율 SELECT case when age >= 10 and age = 20 and age = 30 and age = 40 and age = 50 and age = 60 and age = 70 and age 더보기
[MySQL]show variables DB 시스템 변수 확인하기 show variables는 MySQL의 시스템 변수를 조회하는 명령어이다. 이 명령어를 사용할 때는 특별한 권한이 없이도 서버에 접속만 되어있다면 어느 User라도 사용가능하다. show variables show variables LIKE '찾고자하는 값' show variables LIKE '%max_connections%' show variables LIKE '%max_connect_errors%' show variables LIKE '%wait_timeout%' 특정 시스템 변수를 찾을 때에는 다음과 같은 명령어로 확인할 수 있다. select @@global.max_connect_errors select @@max_connect_errors select @@global.max_connecti.. 더보기
네트워크에 대한 이해 ● ● 네트워크란 무엇일까 네트워크라는 말은 IT전문분야에서 기인한 용어이지만, 일상생활에서도 쓰이기도 한다. 예를 들면 '주식투자를 잘하기 위한 네트워크가 없어서 공부하는게 힘들어. 그런 네트워크를 어떻게 형성해야할지 고민 좀 해봐야겠어' 네트워크의 사전적의미를 정확히 알고 쓰는 것은 아니지만, '우리는 어떤 정보를 공유하거나 얻을 수 있는 무형 또는 유형의 정보망'이라는 의미로 사용한다. 네트워크의 사전적 의미는 1 + 1 = 2 처럼 정해져 있지 않다. 국가에서 정한 표준으로의 정의가 내려져 있지 않고 IT 분야에 따라서 혹은 네트워크를 설명하는 책마다 조금씩 다르게 기술이 정의되어있다. 그래서 네트워크를 설명하기 위한 정해진 답은 없다. 하지만 핵심내용은 이렇게 정리할 수 있을 것 같다. 네트워크.. 더보기
패킷이란 패킷의 정의 패킷,packet은 pack과 bucket을 합친 말이다. 아무튼 어원을 봤을 때 우체국의 소포에서 착안하여 발생한 단어이다. 거대한 데이터를 보내면 데이터가 네트워크 상에서 대역폭을 크게 차지하기 때문에 작은 데이터들로 분할하여 전송을 한다. 마치 우체국에서 화물을 적당한 크기로 나누어서 보내는 것과 같다. 패킷의 구조 네트워크 패킷은 헤더, 페이로드, 트레일러로 구성된다. [헤더] 헤더는 소스 주소, 대상 주소, 프로토콜 및 패킷번호가 포함된다. * 소스 주소 - 패킷의 출처를 나타낸다. * 대상 주소 - 수신 IP를 가리킨다. * 프로토콜 - 이메일, 웹페이지, 비디오 등 전송 중인 패킷 유형을 식별가능하게 한다. * 패킷번호 - 각 패킷에는 두 개의 식별 번호가 있는데 첫 번째는 정보.. 더보기
[MySQL]JOIN 축구로 이해하기 준비 축구선수 Table / 골 Table -- 축구선수명단 INSERT INTO players(playerName, playerTeam, playerPosition, playerNation, playerAge) VALUES ('리오넬메시','바르셀로나','공격수','아르헨티나',34), ('후뱅디아스','맨체스터시티','수비수','포르투갈',24), ('호날두','맨유','공격수','포르투갈',37), ('손흥민','토트넘','공격수','대한민국',29), ('토니크로스','레알마드리드','미드필더','독일',32), ('네이마르','파리생제르망','공격수','브라질',30) -- Goal 데이터 INSERT INTO scores (playerId, playerName, playerTeam, leagu.. 더보기