로운's 기술노트

[항해 5기] 1주차 Week I Learned (API란?) 본문

항해99_'22.01~04

[항해 5기] 1주차 Week I Learned (API란?)

로운's 2022. 1. 14. 19:33

[1주차 테마는 '적응']

 

>> 지금까지 'API'를 단순히 기관에서 제공하는(혹은 다루는) 정보의 규격이라고만 생각했으나, 이번 1주차를 마치며 더욱 정확하게 이해할 수 있어 좋다. 더욱 지적 성장을 이룰 수 있도록 노력하겠다. 

 

 

[ API(Application Programming Interface)란? ]

■ 개념

: 응용프로그램 프로그래밍 인터페이스로 각각의 요청들을 담당하는 서버에게 요청이 잘 전달 및 처리될 수 있도록 하는 매개체이자 일종의 규격

 

■ API유형
  1) private API
  : private API는 내부 API로, 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다.

   따라서 제 3자에게 노출되지 않는다.

  2) public API
  : public API는 개방형 API로, 모두에게 공개됩니다. 누구나 제한 없이 API를 사용할 수 있는 게 특징이다.

  3) partner API
  : partner API는 기업이 데이터 공유에 동의하는 특정인들만 사용할 수 있습니다. 비즈니스 관계에서 사용되는 편이며,

   종종 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.

 

■ 장점

ㅇ자동화가 용이

 : API를 통해 사람이 직접 조작하지 않아도 관련 내용이 자동으로 생성되고 처리되어 워크플로우가 빨라질 수 있습니다.
ㅇ범위의 확장성

 : API는 프로그램 사용 시 정보를 전달하는 기능이 있어 사용자의 환경에 맞춰서 전달할 수 있습니다. 또한 API에 직접 액세스 하지 않아도 콘텐츠가 자동적으로 생성 및 업로드되어 확장이 용이합니다.
ㅇ적용력

 : API는 변화 예측에도 큰 도움이 되기 때문에 API를 통해 데이터를 수집하고 전달하는 데 있어 유연한 서비스 환경을 구축할 수 있습니다.


출처:  [IT is True]

 

 

ㅁ 웹개발플러스 4주차

ㅇ 해시함수 : 알고리즘의 한 종류로서 임의의 데이터를 입력 받아 항상 고정된 길이의 임의의 값으로 변환해주는 함수를 의미 
   (ex. 해시함수 SHA256은 어떤 길이의 입력값을 넣어도 항상 256바이트의 결과값 노출)
ㅇ JWT (JSON Web Token) : JSON 객체를 사용해 정보를 안정성 있게 전달하는 웹표준
   (ex. 로그인기능에서 사용자 로그인시 회원임을 인증하는 토큰으로 서비스영역에서 회원여부 확인)
ㅇ 정규표현식(Regular Expressions)
   - 아이디: 영문과 숫자, 일부 특수문자(._-)만 사용 가능, 2-10자 길이. 영문 무조건 포함
function is_nickname(asValue) {
     var regExp = /^(?=.*[a-zA-Z])[-a-zA-Z0-9_.]{2,10}$/;
     return regExp.test(asValue);
}
   - 비밀번호: 영문, 숫자는 1개 씩 무조건 포함, 일부 특수문자 사용 가능, 8-20자 길이
function is_password(asValue) {
     var regExp = /^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z!@#$%^&*]{8,20}$/;
     return regExp.test(asValue);
}

    ※ 계정중복, 비밀번호 확인 등도 가능! 

 

 

 

ㅁ git이란? : 버전관리도구

ㅇ 커밋(commit) : 현재 프로젝트 상태를 저장 (누가, 언제 commit했는지/ 프로젝트 변경 내용 확인가능)
    ㄴ commit 메시지 : 작업내역 간단리뷰(회사마다 양식이 있는 경우도 있음)
    ㄴ 순서 : add 스테이징 > 커밋 메시지 > 커밋
ㅇ repo(repository) : git으로 관리되는 프로젝트
ㅇ 로컬 repo(local repository) : 내 컴퓨터에 저장되어있는 리포지토리
ㅇ 원격 repo(remote repository) : Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것
ㅇ Tracking(추적) : 로컬 repo 와 원격 repo 를 연결
ㅇ push : 로컬 repo의 commit들을 원격 repo에 반영
ㅇ pull : 원격 repo의 commit들을 로컬 repo로 반영 ('땡겨온다'라고도 함)
ㅇ clone : 원격 repo를 내 컴퓨터에 가져와서 초기 repo 세팅하는 것
   ※ 최초 연동시 pull ▷commit ▷push 순으로 진행
ㅇ Merge conflict(병합 충돌) : 하나의 파일을 여러 브랜치에서 수정하고 하나의 branch에 merge 하려고 할 때 발생
    - 에러를 안 내는 게 중요한게 아니라 버그(컴퓨터가 의도한 대로 동작하지 않는 것)를 고칠 수 있느냐 없느냐가 중요!
 
ㅇ Issue할당
1단계. 누가 이 작업 할 것인지 정한다. - Issue
  ※ Issue란?
    - 버그(프로그램이 원하는 대로 동작하지 않는 것)를 신고 (Bug report, 버그 리포트)
    - 기능 추가 등의 프로젝트 개선 제안 (enhancement)
    - 위 문제들을 해결하기 위한 작업단위
2단계. 각자 맡은 것을 작업한다. - Branch
  ※ Branch란? 각자 공간에서 작업하는 것
     Branch 삭제 : 다른 브렌치에 체크아웃(checkout) 후 가능, 삭제된 브렌치 작업내역도 함께 삭제됨(주의!)
  현재 작업할 Branch를 선택하는 것을 체크아웃이라 명명.

3단계. 각자 작업을 프로젝트에 합친다. - merge
  ※ Merge(병합)는 브랜치를 다른 브랜치에 합치는 것
     순서 : 병합할 위치에 체크아웃 > '병합' 클릭 > 병합할 커밋 선택 > 옵션3개 선택(즉시커밋병합/병합 커밋에 있는 메시지 첨부/fast-forward가 가능홰도 새 커밋 생성) > 확인


※ 참고. git 사용 flow : https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/
          git flow : https://docs.github.com/en/get-started/quickstart/github-flow

 

 

※ 추천도서. 더 나아지고 있는 우리

지금 상황과 상관없이 여러분은 언제나 더 나아질 수 있다. 
더 나아지는 일은 언제나 스스로부터 시작할 수 있다. 
더 나아지는 일은 언제나 오늘부터 시작할 수 있다. 

No matter the circumstances you can always improve.
You can always start improving with yourself.
You can always start improving today.

- 익스트림 프로그래밍(2판).켄트 벡, 신시아 안드레스 지음. 김창준,정지호 옮김.인사이트

 

 

[참고]

https://ittrue.tistory.com/31

Comments