일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- bean
- Instance
- 쓰레드
- IoC
- social login
- 객체지향 프로그래밍
- jvm
- 회고록
- Thread
- class
- 인스턴스화
- 객체
- 항해99장점
- 클래스
- 오브젝트
- 부트캠프추천
- 항해99솔직후기
- process
- 소셜
- DI
- Dependency Injection
- jwt
- API
- 인스턴스
- 소셜로그인
- 항해99단점
- object
- inversion of control
- 프로세스
- 스레드
- Today
- Total
로운's 기술노트
[항해 5기] 1주차 Week I Learned (API란?) 본문
[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판).켄트 벡, 신시아 안드레스 지음. 김창준,정지호 옮김.인사이트
[참고]
'항해99_'22.01~04' 카테고리의 다른 글
[항해 5기] 4주차 Week I Learned (ORM, SQL, MVC) (0) | 2022.02.06 |
---|---|
[항해 5기] 3주차 Week I Learned (DI/IoC/Bean) (0) | 2022.01.30 |
[항해 5기] 2주차 Week I Learned (객체지향 프로그래밍/JVM) (0) | 2022.01.14 |
[항해 5기] Mini Project_11조 완성 (0) | 2022.01.14 |
[항해 5기] Mini Project 11조 S.A(Starting Assignment) (0) | 2022.01.10 |