IT 47

[OS]프로세스와 스레드의 차이

기술면접의 단골 질문인 쓰레드와 프로세스의 차이를 기술하려고 한다 프로세스와 스레드의 정의 - 프로그램 : 프로그램이란 파일이 저장장치에 저장되어있지만 메모리에는 올라가 있지 않은 정적인(실행되지 않은) 코드덩어리를 말한다. - 프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위 - 쓰레드 : 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위 운영체제는 안정성을 위해 한 프로그램에서는 한가지 프로세스만 메모리내에 접근할 수 있도록 제약을 두고있고, 이로인해 프로세스보다 더 작은 실행 단위개념이 필요하게 되었다. 이것이 쓰레드이다. CPU 입장에서의 최소 작업단위가 된다. 쓰레드는 프로세스 특성의 한계를 해결하기 위해 만들어진 개념이기때문에 쓰레드의 특성은 다음과 같다. 쓰레드는 프로세스와 다르게 쓰..

IT/etc 2021.07.12

[SQL] MYSQL에서 RANK구현하기

최근 SQL-D 자격증을 공부하며 배운 함수는 회사에서 MYSQL 5.7 버전을 (8버전 이하) 사용중이라 여러 함수들이 적용안되기 때문에 무용지물이었다. 메뉴 호출 트랜젝션이 한번의 호출당 12번 씩 일어나는것을 리팩토링하다가 갑작스레 DB 버전을 업데이트 하는 위험감수보다는 쿼리를 수정하는게 낫겠다는 생각이 들어 쿼리와 js부분만 수정해보았다. 그러다가 기록하는 RANK 함수 구현하기 ! 듀얼 테이블을 INNER JOIN 하여 변수를 생성해 @ROWNUM을 +1 해주는 방법과 특정컬럼으로 그룹핑하여 @RANK 변수를 한개씩 더해주는 방법이 있다 SELECT @rownum:=@rownum+1 AS NO -- @rownum : RANK를 대신해서 사용함 ,A.* FROM ( SELECT -- @RANK ..

IT/SQL 2021.06.25

[MYSQL] AUTOCOMMIT 확인/변경

회사에서 한 시스템은 MYSQL를 이용하고있고 나는 워크벤치를 이용하고있다 갑자기 문득 UPDATE문을 날리다가 AUTO COMMIT기능이 가끔 엄청난 결과를 불러일으킬거라는 생각이 들어 이를 변경 적용하고자 한다 1. 조회 방법(1) - SELECT SELECT @@AUTOCOMMIT; 실행결과 > 활성화 되어있을 경우 1로 출력된다 이것이 default값 방법(2) - MYSQL 환경변수 확인 - SHOW SHOW variables like 'autocommit' 실행결과 > 변수 값이 ON, OFF로 나타난다 2. 설정 방법 간단한 명령어로 설정을 바꿀 수 있다. 활성화 하려면 TRUE, 비활성화는 FALSE이다. SET AUTOCOMMIT = FALSE ; // 비활성화 SET AUTOCOMMIT..

IT/SQL 2021.06.22

[MYSQL] 인덱스 추가/삭제/변경

1. 테이블 생성시 추가 CREATE TABLE `관리_TABLE` ( `SEQ` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '일련번호', `APPLY_STATUS` varchar(1) NOT NULL COMMENT '적용상태', `REG_COMMENT` varchar(100) DEFAULT NULL COMMENT '등록사유', `REG_USR_ID` bigint(20) NOT NULL COMMENT '등록자', `REG_DT` datetime NOT NULL COMMENT '등록일시', PRIMARY KEY (`SEQ`,`APPLY_STATUS`), INDEX `idx_fwd_ptn_1` (`APPLY_STATUS`,`REG_USER_ID`) ) ENGINE=InnoD..

IT/SQL 2021.06.21

[TeamsWebhook] 팀즈 웹훅으로 채널에 메세지 보내기

최근 회사 커뮤니케이션 도구로 마이크로소프트의 Teams를 사용하는 기업이 늘고있다. 회사에서 기존에 쓰던 알림메세지 어플리케이션은 Telegram 이었는데 업무적으로 얽힌 사람들에게 url 을 보내 초대하는것도 쉽지않고, 보안의 문제가 될 수 있어 팀즈 채널에 전송하기로 변경 개발하였다. 이에 대한 기록을 남겨 놓으려 한다 먼저 팀즈에서의 채널 설정이 필요하다. 1. 커넥터 생성 2. 채컬 커넥터의 Incoming Webhook 구성 3. 만들기가 완료되면 하단에 해당 url이 생성된다 4. 웹훅이 생성되면 팀즈방에 생성을 알리는 메세지가 게시가 된다. 테스트 해보기 1. postman을 이용해서 테스트 설정이 되었다면, curl이나 postman으로 채널에 메세지를 쏴보는 테스트가 가능하다. 위에서 ..

IT/etc 2021.06.17

[Linux] ping

PING이란? Paket Internet Groper의 약어이며, 컴퓨터 네트워크 상태를 점검, 진단하는 명령이다. 네트워크를 확인하려는 대상(target) 컴퓨터를 향해 일정 크기의 패킷(packet, 네트워크 최소 전송단위)를 보낸 후 (ICMP echo request) 대상컴퓨터가 이에 응답하는 메세지(ICMP echo reply)를 보내면 이를 수신, 분석하여 대상컴퓨터가 작동하는지, 또는 대상컴퓨터까지 도달하는 네트워크의 상태가 어떠한지를 파악할 수 있다. 사용법 ping [대상목적지][옵션]

IT/Linux 2021.06.10

[Pinpoint] Pinpoint란?

회사에서 사용하고있는 모니터링 오픈소스 플랫폼은 pinpoint이다 AWS-> IDC 핀포인트로 target collector를 수정을 배포하다가 자세한내용이 궁금해서 찾아보고 적어보는 블로그! 아래 출처페이지 네이버 사이트에 자세한 설명이 나와있으며, 이 게시글은 그 내용을 요약한 내용을 적어두었다. 출처페이지 : https://d2.naver.com/helloworld/1194202 Pinpoint란? 원인을 콕 찝어내다는 뜻의 핀포인트! 대규모 분산시스템의 성능을 분석하고 문제를 진단, 처리하는 java 플랫폼이다 네이버에서 2015년 오픈소스로 배포하였다. 시스템의 복잡도가 높아지면서 장애나 성능문제가 발생했을때 분석과 해결이 어려웠던 것을 해결하기위한 새로운 플랫폼을 만든것이다. 적용과 해제 방..

IT/Server 2021.06.10

[JPA]JPA란?

JPA 란? Java Persistence API의 줄임말로 JAVA에서 쓰이는 ORM 기술 표준이다. 기존의 EJB 에서 제공되던 EJB ORM 엔티티빈을 대체하는 기술이다. 어플리케이션과 JDBA 사이에서 동작한다 EJB 3.0에서 새로운 자바 ORM 기술 표준이 만들어진것이다. JPA는 Hibernate, OpenJPA, EclipaseLink, TopLink Essentials와 같은 구현체가 있고 이것들의 표준 인터페이스가 바로 JPA이다. ORM : Object Relational Mapping ORM이란 RDB테이블을 객체지향적으로 사용하기위한 기술이다. RDB테이블은 객체지향적 특징이없기때문에 자바같은 언어로의 접근이 쉽지않아 객체지향적으로 다루기위한 기술이다. 객체와 RDB 를 ORM 프..

IT/Server 2021.05.27

[SQL] EXISTS (작성중)

EXISTS(서브쿼리)는 서브쿼리의 결과가 1건이라도 존재하면 TRUE를 리턴하고 없으면 FALSE를 리턴한다 일치하는 결과가 단 한건이라도 있으면 더이상 쿼리를 수행하지않는다. EXISTS는 컬럼이 불필요하기때문에 SELECT 1을 기입했다. SELECT a.prod_no , a.prod_name , a.seller_no FROM PROD_TABLE a WHERE a.PROD_name like '%책상%' AND EXISTS ( SELECT 1 FROM PARTNER b WHERE b.seller_no = a.seller_no )

IT/SQL 2021.05.26

[AWS] AWS Global Infra Overview 필기

Amazon VPC (Virtual Private Cloud)란? - 가상의 네트워크 공간 Region 선택, IP주소 설정- 인터넷 게이트웨이 생성 - 가용영역내에 (AZ 아스트라제네카) 서브넷 정의 설정 - 라우팅 구성 CIDR 블록설정 AZ - Availability Zone 태평양, 서울,, 설정 VPC - 아파트단지 Subnet - 동 - 용도에따라 Internet traffic 을 위한 5가지 고려 요소 공인 IP주소 IGW 와 VPC 연결 인터넷게이트웨이로 라우팅 구성 NACL 구성 (넷클, Network Access Control List)구성 - Subnet단위 Security Group - 인스턴스 가상의 랜카드에 트래픽 허용 구성 ————————————————— NACL Statele..

IT/etc 2021.05.25

[Spring] @RequestMapping-> @GetMapping , @PostMapping

Spring 4.3 버전부터 Spring MVC 컨트롤 메소드를 위한 어노테이션이 추가가 되었다. 각각의 어노테이션은 HttpMethod에 맵핑이 된다. PostMapping - Post GetMapping - Get PutMapping - Put DeleteMapping -Delete PatchMappign - Patch로 요청이 맵핑된다 - GET / POST 클라이언트가 서버로 요청을 보내는 방법은 대표적으로 두가지가 있다. Get 방식, POST 방식인데 그 둘의 차이는 아래와 같다. GET 방식 POST 방식 조회하기 위해 사용 됨 데이터를 서버로 보내 추가 또는 수정하기위해 사용 됨 URL에 변수를 포함하여 노출 -> 보안이 취약 URL에 변수를 노출하지않음 데이터를 Header를 포함하여 전..

IT/Server 2021.05.12

[Javascript]자바스크립트란? 스코프란 ?

- 자바스크립트란 ? 자바스크립트란 미국넷스케이프 커뮤니케이션즈사가 개발한 스크립트 언어로, 웹브라우저를 동적으로 꾸밀 때 가장 널리 쓰이는 프로그래밍 언어이다. 웹페이지에 생동감을 불어넣어주는 작고 가벼운 프로그래밍 언어이다. 자바스크립트로 작성한 프로그램을 스크립트라고 하며, 스크립트는 웹페이지 HTML안에 작성할 수 있다. - 스코프 Scope란? 자바스크립트에서 스코프라는 단어를 많이 접할수있다. 스코프란 '변수에 접근할 수 있는 범위' 라고 할수 있고 두가지 타입이 있다. global(전역)과 local(지역)이 두가지이다. 전역스코프는 전역에 선언되어있어 어느 곳에서든지 변수에 접근이 가능하다는 것이고, 지역스코프는 해당 지역에서만 접근할수 있다는 의미이다. - 함수 스코프, 블록 스코프 - ..

IT/Script 2021.05.12

[Linux] 명령어 정리

1. 압축하기 : tar cvfz [경로]000.tar.gz 2. 압축풀기 : tar xvfz [경로]000.tar.gz 3. ls : 현재 디렉토리의 파일 리스트를 보여줌. ls -al : 파일의 속성(크기, 퍼미션, 히든 파일)을 보여줌. ls -at : 파일이 생성된 시간까지 보여줌. 4. cd : 지정된 경로로 디렉토리를 이동할 수 있다. ex) cd /; cd /bin/src; cd ; /* cd는 현재 디렉토리를 보여주고, 해당경로를 지정하였을 때 이동한다.*/ 5. chmod : 파일이나 디렉토리의 퍼미션을 변경해줌. ex) chmod 755 test01.java 6. mkdir : 디렉토리를 생성 ex) mkdir test01 7. rmdir : 디렉토리를 제거 ex) rmdir : tes..

IT/Linux 2021.04.30

[HTTP] Error Code 정리 ( 정리중 )

HTTP (하이퍼텍스트 전송 프로토콜) 은 하이퍼미디어 문서를 전송하기위한 어플리케이션 레이어 프로토콜이다. 웹 브라우저와 서버간의 커뮤니케이션을 위해 디자인 되었고 요청에 대한 응답 코드를 가지고 요청이 성공되었는지 에러가 발생하였는지 다양한 코드를 반환한다. HTTP 사ㅇ태 코드는 5개의 분류로 구분된다. 상태코드의 첫번째 숫자는 응답의클래스를 정의한다. 첫자리에 대한 5가지 값들은 다음과 같다 - 1XX (정보) : 요청을 받았으며 프로세스를 계속한다. - 2XX (성공) : 요청을 성공적으로 받았으며 인식했고 수용했다. - 3XX (리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요하다 - 4XX (클라이언트 오류) : 요청 문법이 잘못되었거나 요청을 처리할 수가 없다. - 5XX (서버 오..

IT/Server 2021.04.21