본문 바로가기

프로그래밍/IT

(8)
REST(Representational State Transfer) 란? 현재 POST는 아직 작성 중인 게시글입니다. 게시글이 길어져 우선 학습하고 있는 내용을 요약없이 미리 게재하여 놓았으니 참고바랍니다. 이 글의 핵심은 CHAPTER 5 Representational State Transfer (REST) 부분이니 참고하셔서 열람 바랍니다. REST란? REST 아키텍처 스타일은 로이 필딩의 박사 논문에서 처음 제안된 설계 방식입니다. https://ics.uci.edu/~fielding/pubs/dissertation/top.htm Architectural Styles and the Design of Network-based Software Architectures UNIVERSITY OF CALIFORNIA, IRVINE Architectural Styles and ..
JWT (JSON Web Tokens) 란? JWT (JSON Web Tokens) 란? JWT는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방벙을 정의하는 표준 RFC 7519 입니다. 이 정보는 디지털 서명이 되어 있으므로 신뢰할 수 있으며, RSA 또는 ECSDA를 사용하는 공개/개인키 쌍으로 사용하여 서명할 수 있습니다. JWT는 여러 분야에서 사용되며 특히, Authorization, Inforamtion Exchange에 많이 사용 됩니다. JWT (JSON Web Tokens) 의 구조 JWT는 세가지 부분으로 나눠져있으며 (.)으로 구분합니다. Header Payload Signature 전형적으로 아래와 같은 형식을 따릅니다. xxxxx.yyyyy.zzzzz HEADER.PAYLOAD.SIGNATU..
Git 정리 기본 CLI 명령어 git init 현재 폴더에 Git 저장소를 생성합니다. [.git]이 로컬 저장소 git add file1 file2 파일들을 스테이지에 추가합니다. 새로 생성한 파일을 스테이지에 추가하고 싶다면 반드시 add 명령을 사용합니다. git commit 스테이지에 있는 파일들을 커밋합니다. git commit -a add 명령을 생략하고 바로 커밋하고 싶을 때 사용합니다. 변경된 파일과 삭제된 파일은 자동으로 스테이징되고 커밋됩니다. 주의할 점은 untraked 파일은 커밋되지 않습니다. git push (-u) (원격저장소별명)(브랜치이름) 현재 브랜치에서 새로 생성한 커밋들을 원격저장소에 업로드합니다. -u 옵션으로 브랜치의 업스트림을 등록할 수 있습니다. 한 번 등록한 후에는 gi..
데이터베이스 요약 스키마란? 데이터베이스의 구조와 제약조건에 대한 명세를 정의한 것 데이터 베이스 키 종류 - 후보키 튜플을 유일하게 식별할 수 있는 속성들의 부분 집합 유일성, 최소성 만족 - 기본키 후보키 중 주키, NULL을 가질수 없음, 동일한 값 중복 X - 대체키 기본키를 제외한 나머지 후보키 - 슈퍼키 유일성은 만족하지만 최소성은 만족시키지 못하는 것 - 외래키 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간의 참조 관계를 표현 Primary키와 foreign키의 차이 Primary key : 테이블을 대표하는 키, NULL 불가 Foreign key : 테이블의 기본키를 참조 , NULL 가능 데이터베이스 정규화란? 이상 문제를 해결하기 위해 속성들 끼리의 종속 관계를 분석하여 여러개의 릴레이션으로 분해 ..
JAVA 프로그래밍 요약 JAVA란? 객체 지향 프로그래밍 언어(1996년 썬 마이크로 시스템즈) 자바 특징 1) 운영체제에 독립적 (JVM을 통해 간접적으로 OS에 접근함) 2) 객체지향 언어 (상속, 다형성, 추상화, 캡슐) 3) 자동 메모리 관리 (가비지 컬렉션) 4) 멀티 쓰레드 (Thread, Runnable) 객체지향과 절차지향의 차이 절차지향: 절차대로 프로그래밍하는 방법 객체지향 프로그래밍(OOP): 실생활 물체를 객체로 표현하고, 이들간의 관계, 상호작용을 프로그램으로 나타냄 * 객체 : 변수와 메소드를 가진 것(선언 된 것) * OOP 장점 : 재사용성, 생산성, 모델링, 유지보수 * OOP 단점 : 개발속도, 코딩 난이도 상속 (IS-A관계) : OOP(객체지향프로그래밍)의 1번째 특징 부모 클래스의 변수/메..
가비지컬렉션 가비지 컬렉션은 기존에 할당된 메모리를 재사용하는 매커니즘으로, 나중에 메모리를 할당할 때 재사용할 수 있다, 대부분의 프로그래밍 언어는 가비지 컬렉션을 자동으로 실행한다. 가비지 컬렉션을 사용하면 메모리를 직접 해제할 필요가 없다. 자바에서는 new 키워드로 새로운 객체를 생성한다면 JVM은 해당 객체에 저장된 데이터에 적절한 양의 메모리를 할당한다, 객체가 더 이상 필요하지 않으면 JVM 공간을 재배치해야 한다. 그래서 생성된 다른 객체가 해당 메모리 공간을 사용하게 된다. C와 C++ 같은 프로그래밍 언어에서는 malloc와 free 함수를 호출해서 이런 메모리 할당을 수동으로 직접 관리해야 했다. 자바와 C# 같은 대부분의 모던 프로그래밍 언어에는 효율을 높이기 위해 메모리를 자동으로 관리하는 시..
MVC 패턴 MVC 패턴이란? Model view controller의 약자로 써, 개발 할 때, 3가지 형태로 역할을 나누어 개발하는 방법론입니다. 즉, 비지니스 처리 로직과 사용자 인터페이스 요소를 분리 시키는 것을 의미합니다. 예를 들어, 위의 그림의 경우, 데이터를 Model로 데이터 양식(눈에 보여지는 것)을 view로 분리시키고 가운데 콘트롤러를 두는 것을 의미합니다. 비즈니스 로직이나 프로세스도 모델에 들어갈 수 있습니다. 그렇다면 패턴이란 무었일까요? OOP 개념이 기본입니다. 클래스들을 역할 관계를 잘 나눠서 유지 보수 개발하기 쉽게 만드는 것을 의미합니다. MVC 패턴 만드는 방법 1.먼저 리스트를 뽑아낸다 2.유사한 성격 끼리 묶음 3.클래스를 정의 4.성격에 맞게 나눈다 잘 만들어졌는지 검증 방..
Black-box vs. White-Box Black-bax 장점 Black-bax 단점 1.시간의 효율적인 관리 기능 -개발자는 주어진 시간에 개발만 완료 하면된다 -주말에 나와서 할 수도 있고 여러가지 근무 가능 2.관리자의 관리를 최소로 받음 3.엔지니어로서의 노하우를 지킴 -나만의 기술력을 가지는 것은 엔지니 어로써의 장점 1.관리자는 불안감을 가짐 2.문제가 심각해지기 전까지 알 수 없음 3.Best Practice가 외부에 잘알려지지 않음 -실무적인 일을 해결하는 방법 4.전문가 양성이 되지않음 Generalist Specialist 1.기본 역량의 사람이 많은 회사 2.사람들간의 역량 차이가 심함 1.특정 분야의 전문지식, 노하우가 있으면 전문가 양성 가능 2.Black-box에서 적절하지 않음