반응형
반응형

📝지라(JIRA)

프로젝트 관리 툴로 지라의 가장 큰 장점은 이슈 관리가 용이하다는 점이다.

프로젝트 수행 중 발생하는 이슈를 등록하고 이를 개인 단위 혹은 팀 단위에서 처리 및 관리가 가능하도록 설계되어 있다.

 

📝애플리케이션단(어플리케이션단)

로직처리하는 영역

 

📝ISAM

ISAM은 순차적 접근 방법을 기반으로 하는 색인 방법 중 하나입니다

기본 아이디어는 데이터를 순차적으로 저장하면서 인덱스를 사용하여 특정 레코드를 빠르게 찾을 수 있도록 하는 것입니다 주로 정렬된 데이터 집합에서 사용되며 ISAM은 기본적으로 키─포인터 쌍을 가진 인덱스를 사용합니다

이 인덱스는 트리 형태로 구성되어 있어 검색이 빠르게 이루어집니다

순차 접근 액세스에 특화되어있기 때문에 검색 범위에 빈틈 없는 경우 더 효과적이다 예를 들면 1, 2, 3, 4, 5의 데이터가 있는 경우 1, 5를 가져오는 범위 쿼리보다는 1, 2, 3, 4 의 데이터를 가져오는 범위쿼리에 더 적합하다

 

📝B+ 트리

B+ 트리는 효율적인 검색과 범위 검색을 지원하는 트리 기반의 색인 구조입니다.

주로 파일 시스템, 데이터베이스 인덱스, 메모리 관리 등 다양한 분야에서 사용됩니다

일반적으로 DB에서 인덱스를 만들어 성능을 높일 때 B+트리를 이용하는게 일반적이며 ISAM을 이용하는 것보다 B+트리를 이용하는 게  특정 상황을 제외하고 다양한 용도에 가장 적합하다

 

 

📝웹스퀘어

표준을 준수한 UI프레임워크로 UI컴포넌트와 Utill API, 통합 개발 도구 제공하는 솔루션으로 이클립스에도 연동이 가능하다 쉽게 말해 프론트 화면 개발 툴이지만 버그가 판을치고 평이 매우 안 좋다

반응형
반응형

📝 OSI 7 계층

서로 다른 컴퓨터의 통신을 위해 처리해야할 작업을 순차적으로 7단계로 처리하는 과정

 

📝 OSI 1 계층

1계층은 물리계층으로 보낼 데이터 정보(0 또는 1로 되어있는 디지털 신호)를 아날로그 신호(전기적 신호)로 바꾸고 그와 반대 역할을 수행합니다 해당 장치로는 통신 케이블, 허브 등이 있습니다.

 

📝 OSI  2 계층

2계층은 데이터링크계층으로 여러 컴퓨터가 데이터를 보낼 때 데이터가 꼬일 수 있기 때문에  보내는 데이터에 특정 비트열을 붙여서 어디서부터 어디까지 읽어야하는지 정해준다 → 프레이밍 

이 계층에서 전송되는 데이터 단위를 프레임이라고 한다.

 

예) "안녕하세요"를 보낼 경우 "안녕하세요"(프레임)까지 읽어야하는데 "안ㄴ"(프레임)까지만 읽는 경우 문제가 생기기 때문에 이렇게 보낸다

 

또한 같은 네트워내에 있는 MAC주소 기반으로 데이터를 보내는 역할도 합니다. 해당 장치로는 스위치와 브리지가 존재합니다.

 

📝 OSI 3 계층

3계층은 네트워크계층으로 받은 데이터를 목적지(IP)까지 가장 안전하고 빠르게 전달하는 기능이다. 2계층에서는 MAC주소 기반으로 같은 네트워크 내에 보내지만 서로 다른 네트워크에 대해서는 3계층을 이용한다. 전송 데이터 단위는 Packet이며 Packet단위로 전달한다 → 해당 장치로는 라우터가 있습니다. (공유기도 3계층 역할을 한다)

 

개인적인 생각으로 2계층으로 처리할 수 있으면 2계층으로 안 되면 3계층으로 처리하는 것 같다.

 

📝 OSI 4 계층

4계층은 전송계층으로 3계층으로 받은 데이터의 데이터의 무결성을 위해 오류검출(데이터 누락시 재전송 요청)및 복구, 흐름 제어와 중복검사 등을 수행한다 데이터 전송 단위는 Segment이다

대표적 프로토콜로 TCP와 UDP가 있다 → 운영체제의 커널에 소프트웨어적으로 구현되어 있다

 

  • TCP
    • 연결을 설정하고, 데이터의 정확한 순서와 정합성을 보장하며, 수신 확인(ACK) 및 재전송을 관리합니다 [웹 브라우징(HTTP/HTTPS)]
  • UDP
    • 빠른 전송이 필요한 경우 사용됩니다. 연결 설정 없이 데이터를 전송하며, 순서 보장이나 수신 확인이 필요 없고, 속도가 중요한 경우에 적합합니다 [실시간 스트리밍, 온라인 게임]

 

📝 OSI 5 계층

5계층은 세션계층으로 세션 계층으로, 통신 세션을 설정, 유지, 종료하는 역할을 담당합니다.

 

📝 OSI 6 계층

6계층은 표현계층으로 송수신자가 공통으로 이해 할 수 있도록 정보의 데이터 표현방식을 바꾸는 기능을 담당한다

데이터의 보안과 효율적인 전송을 위해 암호화와 압축을 수행하여 세션 계층 데이터를 암복호화(인코딩, 디코딩) 또는 압축하는 역할JPEG, MP3 등...

 

📝 OSI 7 계층

7계층은 응용계층으로 사용자가 네트워크 자원(보낸 데이터)에 접근하는 방법을 제공한다.
HTTP를 통해 해당 데이터를 요청하고 7계층은 사용자가 볼 수 있는 유일 계층으로 모든 네트워크 활동 기반 인터페이스를 제공하는데 사용자가 이용하는 응용 프로그램들이 이에 포함된다고 생각하면 된다. (HTTP, HTTPS, FTP, SSH, 등)

 

예를 들면 HTTP의 경우 GET방식, Host, User-Agent정보 등이 포함되고 SSH의 경우 ssh 정보, SMTP의 경우 이메일 정보, FTP의 경우 user, password 정보가 포함된다.

 

📝 동작 순서

출발지에서 각 계층에 따른 역할을 붙히고 목적지에서는 그걸 해석하는 작업을 가진다

위에 그림과 같이 7 계층 → 6 계층 .... 1계층 → 1계층 → ... 7계층 보내는 쪽에서는 점점 데이터가 붙어서 전달하고 받는 쪽에서는 각각의 역할을 맡은 레이어별로 해당 부분의 데이터를 빼가면서 해석하며 전해준다

 

 

📝 TCP / IP 모델

현재는 OSI 7계층이 아니라 TCP / IP 모델을 쓴다OSI 7 layer가 시장 점유율에서 패배 (이론적으로는 OSI 7 layer로 설명) 5 ~ 7 계층을 TCP / IP 모델에서는 하나의 응용 계층으로 묶는 점이 다르다

 

📝 TCP/IP 1 계층

링크계층으로 OSI 1계층처럼 패킷을 하드웨어로 보낸다

 

📝 TCP/IP 2 계층

네트워크 계층으로 OSI 3계층처럼 수신지에 MAC 주소및 목적지 포트를 붙여서 전달한다

 

📝 TCP/IP 3 계층

트랜스포트 계층으로 OSI 4계층처럼 TCP프로토콜 기반으로 데이터를 패킷화 시켜서 보낸다

 

📝 TCP/IP 4 계층

애플리케이션 계층으로 OSI 5 ~ 7 계층에 해당하는 부분으로 어떻게 데이터를 요청할 지 등을 정한다 → HTTP , Telnet 등...

 

📝 TCP

연결지향이며 자체적으로 패킷을 이용해서 정보를 전달하므로 패킷은 규약이 있다 TCP는 전달받은 패킷을 재조립하고, 패킷에 손상이 있거나 손실된 패킷이 있다면 재전송을 요청한다.

 

📝 TCP/ IP

TCP방식으로 해당 IP에 데이터를 보내는 방식

 

📝 UDP

비연결지향이며 오류를 처리하거나 순서를 재조합시켜주는 기능을 가지고 있지 않다

단순히 데이타를 받거나 던져주기만 하는 프로토콜이다

UDP는 특히 실시간 멀티미디어 정보를 처리하기 위해서 주로 사용한다

 

📝 페이로드 (Payload)

HTTP 요청을 보낼 때 보내는 데이터를 Payload라고 합니다

 

📝 패킷 (Packet)

데이터를 일정한 크기로 자른 단위로 인터넷에서 정보를 전달하는 단위이다

나누어진 패킷이 순서대로 도착한다는 보장이 없으므로 규칙이 필요하다

 

📝 트래픽 (Traffic)

인터넷에서 송수신되는 데이터의 양

 

📝 라우팅 (Routing)

통신 데이터를 보낼 때 최적의 경로를 선택하는 과정

 

 

🔗 참고 및 출처

https://velog.io/@beberiche/TCPIP-OSI-7-Layer-%EC%97%90-%EB%8C%80%ED%95%B4-%EB%A7%90%EC%94%80%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94

반응형
반응형

📝커넥션 풀 (DBCP)

  • 웹 컨테이너(WAS)가 실행되면서 DB와 미리 Connection (연결)을 해놓은 객체들을 pool에 저장해두었다가 클라이언트 요청이 오면 Connection을 빌려주고 처리가 끝나면 다시 Connection 을 반납받아 pool에 저장하는 방식을 말합니다
  • 동시 접속 할 경우 pool에서 미리 생성 된 Connection을 제공하고 없을 경우는 사용자는 Connection이 반환될 때까지 번호순대로 대기상태로 기다린다
  • WAS에서 션 풀을 크게 설정하면 메모리 소모가 큰 대신 많은 사용자가 대기시간이 줄어들고 반대로 커넥션 풀을 적게 설정하면 그 만큼 대기시간이 길어진다
  • 커넥션 풀은 서버당 최대 커넥션 수를 제한하여 따라서 DB에 무한정 연결이 생성되는 것을 막아주어 서 DB를 보호하는 효과도 있다
  • 대표적인 커넥션 풀 오픈소스는 commons-dbcp2 , tomcat-jdbc pool , HikariCP이고 최근에는 hikariCP 를 주로 사용한다 → 스프링 부트 2.0 부터는 기본 커넥 션 풀로 hikariCP 를 제공

 

📝디스크 풀

디스크가 꽉 찼음

 

📝데이터 풀

데이터베이스에서 얻은 데이터들의 집합

 

📝스레드 풀

스레드 제어 문제를 해결할 방법으로 스레드 풀을 사용한다.

스레드 풀은 매번 생성 및 수거 요청이 올 때 스레드를 생성하고 수거하는 것이 아닌 스레드 사용자가 설정해둔 개수만큼 미리 생성해두는 것이다 → 반환될 때까지 번호순대로 대기상태  작업이 끝난 스레드가 60초 이상 새로운 작업요청이 없으면 스레드를 종료하고 스레드 풀에서 제거

 

📝참조 데이터

해당 데이터를 여러 곳에 쓰이는 경우 주소를 참조하게끔 하면 계속 해당 데이터를 만드는 것보다 메모리 할당을 줄일 수 있다

 

 

🔗 참고 및 출처

https://d2.naver.com/helloworld/5102792

반응형
반응형

📝코딩 컨벤션

읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다

예) boolean 타입인 경우 is, has 접미어를 붙인 변수로 선언한다, 카멜 케이스를 따른다 등...

 

📝UUID

UUID는 128비트의 숫자이며, 32자리의 16진수로 표현된다. 

 

📝R&D

Research and Development의 약자로, 우리말로 "연구 개발"

 

📝sandbox 

외부로부터 받은 파일을 바로 실행하지 않고 보호된 영역에서 실행시켜 봄으로써 외부로부터 들어오는 파일과 프로그램이 내부 시스템에 악영향을 주는 것을 방지하는 기술

 

📝DB 인덱스 

DB 인덱스(Index)는 데이터베이스에서 검색 속도를 향상시키기 위해 사용되는 데이터 구조이다

인덱스 생성 방법으론 다양한 게 있지만 기본적으로 INSERT, UPDATE, DELETE가 자주 발생하지 않는 컬럼을 사용해야하고(인덱스를 생성할 때 성능 이슈가 발생) JOIN이나 WHERE 또는 ORDER BY에 자주 사용되는 컬럼에 효과적이다. 

인덱스를 사용하는 것 만큼이나 생성된 인덱스를 관리해주는 것도 중요하다. 그러므로 사용되지 않는 인덱스는 바로 제거를 해주는게 좋다

 

📝함수(function)

특정 계산을 수행하며 쿼리 내에서 계산된 값을 반환한다

계산하고 반환하는데 중점을 두기 때문에 주로 SELECT문에서 많이 사용한다

SELECT get_keywords();

 

📝프로시저(procedure)

특정 작업을 수행하며 리턴값이 없을 수 있다

프로시저는 주로 데이터 조작 작업(INSERT, UPDATE, DELETE)이나 특정 비즈니스 로직을 수행하는 데 사용하며 단독으로 실행이 가능하다

함수처럼 매개변수를 받을 수 있고 특정 작업들을 수행하지만 뭔가를 반환하는 것보다는 일련의 함수 동작을 수행한다

→ 물건 구매했을 때 구매목록 테이블에 데이터 INSERT되고 배송 테이블에 데이터 INSERT되고 등... 여러 행위를 하나로 묶은 프리시저를 만들어서 활용할 수 있다

CALL UpdateEmployeeSalary(1, 50000);

 

 

 

반응형
반응형

📝호스트OS 

본래 깔려있는 OS → 너 컴퓨터 OS가 뭐야? - 나는 윈도우야!

 

📝게스트OS

본래 깔려있는 OS위에 설치하는 OS → 리눅스 가상화 등...

 

📝옵티마이저

가장 효율적인 방법으로 SQL을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진

 

📝빅오 (Big-O)

연산횟수로 측정하는 시간복잡도

  • O(1)
    • 계산횟수 일정
  • O(N)
    • 계산횟수 정비례
  • O(N^2)
    • 계산횟수 거듭제곱비례

 

📝SQL 튜닝 

최소한의 CPU I/O 메모리를 사용해 최대한 빠른 시간내 원하는 데이터 작업을 수행시키는 것
아무리 쿼리의 성능을 튜닝해도 근본적인 스키마 구조가 문제라면 밑빠진 독에 물 붓기이기 때문에 이런 경우 아예 근본적인 스키마 구조부터 뜯어고쳐야할 수 있다 데이터 모델링을 할 때는 일반적으로 사용자의 이용 빈도(자주 사용하는 화면)를 고려하며 설계 하는 게 좋다

반응형
반응형

📝논리명

테이블의 컬럼의 별칭 → 한글이나 알아보기 쉬운 단어로 표현

예) "price" 컬럼의 논리명은 "가격"이다

 

📝물리명

DB 테이블의 실제 컬럼명

예) "price" 컬럼의 물리명은 "price"이다

 

📝DDL (Data Definition Language)

테이블과 같은 스키마 구조를 정의하는 명령어 (CREATE, ALTER, DROP 등..)

 

📝DML(Data Manipulation Language)

Data를 활용하기 위한 언어 (INSERT, DELETE, UPDATE, SELECT)

 

📝데이터 무결성

데이터베이스에서 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다

무결성 설계를 하지 않으면 테이블에 중복 데이터 존재 및 부모 자식 데이터간의 논리적 관계 깨짐 등에 대한 문제가 발생할 것입니다 → 필수는 아니지만 모든 걸 지키는게 좋다

 

  • 개체 무결성
    • 기본키에는 Null이 올 수 없고 하나의 값만 존재해야한다
  • 참조 무결성
    • 테이블간 참조 관계 선언하는 조건으로 외래키는 Null이 아니여야하고 참조 릴레이션의 기본키 값과 동일해야한다
  • 도메인 무결성
    • 특정 필드의 무결성 보장하기 위한 것으로 필드 타입, Null 허용에 대한 설정을 올바르게 하는 것 → 주민등록번호에 글자가 들어가면 안 됨
  • Null 무결성
    • 테이블 특정 속성 값이 Null이 될 수 없게 하는 조건
  • 고유 무결성
    • 특정 속성에 대해 각 레코드들이 갖는 값들이 서로 달라야한다 → 중복된 레코드가 있으면 안 된다
  • 키 무결성
    • 하나의 테이블에는 적어도 하나의 키가 존재해야한다
  • 관계 무결성
    • 참조 무결성 및 부모 테이블과 자식 테이블 간의 관계가 올바르게 설정되었는지에 대한 것

 

📝Database Schema

Data Model을 바탕으로 Database의 구조를 기술한 것 → 테이블 명, 컬럼명, 타입 등...

 

📝이스케이프 문자

특별한 문자를 입력하기 위해 백슬래쉬(\)를 붙이는 문자를 말한다.

 

  • \\
    • 백슬래시
  • \r
    • 캐리지리턴 (커서의 위치를 현재 줄의 맨 앞으로 이동)
  • \'
    • 작은 따옴표
  • \"
    • 큰 따옴표
  • \t
  • \n
    • 개행
  • \r\n
    • Enter  → 타자기를 보면 오른쪽으로 쭉 쳐지다가 왼쪽로 간 후 개행이 된다 그걸 토대로 만들어진게 Enter이다.

 

 

📝정규표현식

정규표현식은 문자열을 처리하는 방법 중의 하나 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단입니다.

 

정규식에서 물음표(?), 마침표(.), 별표(*), 백슬래쉬(\) 문자는, 정규식 자체를 형성하는 특수문자이기에, 이 문자들 자체를 있는 그대로 매치시키려면 \이라는 이스케이프 문자를 붙여야 합니다.

 

노트패드에서 정규표현식으로 활용한 예입니다 아마도 리눅스의 경우 정규표현식이 사용되는 경우가 많은 거 같습니다

 

🔗 참고 및 출처

https://cocoon1787.tistory.com/778

반응형
반응형

📝정형데이터

그 값이 의미를 파악하기 쉽고 규칙적인 값(단어, 숫자 등)이 들어간 데이터를 의미합니다.

예) 짬뽕, 1200 등...

 

📝비정형데이터

정해진 규칙이 없어서 값의 의미를 쉽게 파악하기 힘든 데이터를 의미합니다 → 텍스트, 음성, 영상과 같은 데이터

예) 짬뽕은 맛있다, 영상, 음성 등..

 

📝반정형데이터

일정한 구조를 가지고 있지만 모든 데이터가 엄격한 규칙을 따르지 않습니다XML, HTML, JSON

예) {"result" : "ok"} 등...

 

📝하이브리드 앱

하이브리드 앱은 네이티브 앱과 웹앱의 결합 형태네이티브 기술이 필요한 곳은 네이티브로 그렇지 않고 웹으로도 충분히 가능하다면 웹뷰를 이용해 웹과 연결 시킵니다 이를 통해 네이티브 API와 브라우저 API를 모두 사용할 수 있는 장점이 있습니다

JavaScript Interface라는 걸 이용해 JavaScript가 네이티브 코드의 특정 함수를 호출할 수 있게 합니다 → 비슷한 기술을 쓰는 React Native라는 프레임워크가 존재합니다

 

💗장점

  • 네이티브 API와 브라우저 API를 이용한 다양한 개발 가능 웹 개발 기술로 앱을 개발 가능
  • 한번의 개발로 다수의 플랫폼 대응 가능

⚠️단점

  • 웹뷰에서 앱을 실행할 경우 앱의 성능이 브라우저의 성능

 

📝네이티브 앱

모바일 기기에 최적화 된 언어로 개발 된 앱으로 안드로이드는 Java나 코틀린, IOS는 스위프트로 만드는 것을 의미합니다.

 

💗장점

  • 성능이 웹앱, 하이브리드 앱에 비하여 가장 높습니다
  • 네이티브 API를 호출하여 사용해 플랫폼과 밀착되어 있습니다 → 위치, 핸드폰 기울기 정도 등을 이용할 수 있습니다

⚠️단점

  • 플랫폼에 한정적입니다
  • 플랫폼에서 요구하는 언어에 제약적입니다 따라서 플랫폼의 API를 다루는데 익숙해야 합니다.

 

📝웹앱

모바일웹과 네이티브앱을 결합 상태로 모바일 웹보다 조금 더 모바일에 최적화 된 앱 → 굳이 모바일웹하고 구분 지을 필요는 없어보임

 

📝모바일웹

PC용 홈페이지를 모바일 스크린의 크기에 맞춰 줄여 놓은 것

 

💗장점

  • 웹사이트를 보는 것이라 따로 설치가 필요 없다 모든 기기와 브라우 접근가능
  • 승인과정이나 별도 설치가 필요하지 않아 유지보수가 용이

⚠️단점

  • 플랫폼 API (카메라) 등을 사용할 수 없고 오로지 브라우저 API만 사용
  • 터치 앱 개발에는 약간 번거로움

 

반응형
반응형

📝시큐어코딩

소프트웨어(SW)를 개발함에 있어 개발자의 실수, 논리적 오류 등으로 인해 SW에 내포될 수 있는 보안 취약점(vulnerability)을 배제하기 위한 코딩 기법을 뜻 한다.

→ 현재잔액이 5천원인데 5천만원을 인출할 경우 어떻게 처리할지 또는 오픈 소스를 이용해 만들었는데 오픈 소스에서 서버 정보를 보여주는 페이지를 막는가? 등..

 

📝워크스테이션

연산, 공학 설계, 통계 처리, 자료 분석 등과 같은 좀 더 복잡한 계산을 위해서 만들어진 전문적 용도의 컴퓨터입니다.

→ 한 가지 일만을 위해 만들어진 경우가 많음

 

📝클러스터링

컴퓨팅 파워를 증가시키기 위한 방법이다

여러 대의 일반 워크스테이션을 네트워크로 연결하여 하나의 PC처럼 작동하게 하는 기술

워크스테이션의 CPU 성능이 좋아지고 네트워크 속도 또한 엄청나게 발달하여 클러스터의 실적용이 가능해졌다.

클러스터 PC들의 OS는 오픈소스로 인해 자유롭게 튜닝이 가능한 리눅스를 사용한다.

 

📝서드파트

다른 회사에서 만든 제품을 이용해 소프트웨어나 하드웨어를 개발하는 회사입니다.

→ A라는 회사에서 검색엔진을 만들었고 B라는 업체가 해당 검색엔진을 가지고 C라는 업체에서 개발하는 것

 

📝솔루션

수요자의 요구에 맞춘 소프트웨어를 개발함으로써 문제를 해결하는 것

→ 검색 특화 솔루션으로 검색엔진이 존재한다

 

 

 

반응형
반응형

📝배치프로그램

배치는 주로 일괄 처리를 의미하며 대량의 데이터를 한꺼번에 처리하는 작업을 말합니다

 

📝에이전트

컴퓨터 분야에서는 작업을 대행해주는 프로그램이라고 생각하면 된다

대부분의 모니터링 시스템은 에이전트 모듈을 통해 데이터를 수집하고 이를 분석, 저장, 시각화하는 프로세스를 가진다

 

📝크론

리눅스 운영 체제에서 시스템 작업을 자동으로 예약하고 실행하기 위한 스케줄링 시스템

 

📝크론탭

크론들을 관리하는 것 → 스케쥴러 관리

 

📝Control-M

배치 작업 생성, 스케줄링 및 관리를 자동화하고 간편하게 해주는 솔루션입니다

 

 

 

 

반응형