[정리] Http Method 정리
·
개발/정리
HttpMethod란 클라이언트와 서버사이에 이루어지는 요청과 응답데이터를 전송하는 방식을 일컫는다. 특히, 클라이언트가 서버에게 해당 URI에 요청을 보낼때 이러한 방식으로 요청을 보냅니다~ 라고 알려주는 것이다. 1. HttpMethod 종류 (1) GET 특정 리소스 표시 (읽기) (2) POST 특정 리소스에 엔티티를 제출할때 사용 (추가) (3) PUT 목적 리소스를 요청 데이터로 바꾼다. 데이터가 없다면 추가한다. (전체 수정 or 추가) (4) PATCH 리소스의 부분만을 수정하는데 사용한다. (부분 수정) (5) DELETE 특정 리소스 삭제 (6) HEAD GET method와 같지만 Body를 포함하지 않는다. (7) OPTIONS 목적 리소스의 통신을 설정하는데 사용, 내가 어떤 me..
[정리] DDD 설계 vs SQL중심 설계
·
개발/정리
1. DDD (Domain Driven Design) (1) DDD란? 먼저 도메인이란 소프트웨어로 해결하고자 하는 문제 영역이다. 예를 들면 온라인 쇼핑몰의 도메인은 전자상거래이다. 하위 도메인으로 상품 판매의 이커머스 도메인이 있고 그 하위 도메인으로 상품이라는 도메인이 있다. 이러한 도메인을 중심으로 설계해 나가는 방법을 DDD(도메인 주도 설계)라고 한다. (2) DDD가 왜 필요한가? DDD는 기존 어플리케이션 설계가 도메인에 대한 이해가 부족한 상태로 설계 및 개발 되었다는 반성에서 출발했다. DDD에서는 현실 -> 서비스 로의 일방향 소통구조를 탈피하여 현실 서비스 의 쌍방향 커뮤니케이션을 위해 필요하다. 예를 들면 상품판매의 도메인을 놓고 기획자와 개발자는 다른 생각을 가지고 있을 수 있다..
[정리] Youtube가 가진 기능 도메인으로 정리해보기
·
개발/정리
유투브는 어떤 기능이 존재할까라는 생각을 하며 유튜브 홈페이지를 들어가봤다. 1. 사용자 관점에서 기능 정리 먼저 눈에 보이는건 동영상과 관련된 기능이었다. 1. 동영상 나열 2. 쇼츠 동영상 나열 3. 동영상 미리보기 4. 동영상 검색 5. 카테고리 선택 6. 구독한 채널 동영상 보기 그다음 눈에 들어온건 로그인 관련 기능이다. 1. 로그인, 로그아웃 2. 알람 3. 동영상 만들기 4. 보관함 5. 시청기록 6. 내 동영상 그 다음 하나의 동영상을 클릭하여 들어가봤다. 1. 일시정지 2. 영상 구간 선택 3. 구독 4. 좋아요, 싫어요 5. 신고 6. 클립만들기 7. 댓글 달기 8. 댓글 좋아요 9. 대댓글 10. 다른 동영상 보기 11. 날짜 표시 12. 조회수 표시 설정도 들어가봤다. 1. 멤버십 ..
[정리] 객체지향의 4가지 특징
·
개발/정리
객체지향에는 4가지 특징이 있다. 1. 캡슐화 캡슐화는 캡슐처럼 감싼다고 해서 캡슐화이다. 우리가 먹는 알약을 떠올리면 알약안에 있는 성분은 모르지만 그 효과는 알고 있다. 이처럼 안의 내용을 숨기면서 동작하는 것이 캡슐화이다. public class Main { public static void main(String[] args) { Capsule capsule = new Capsule(); String randomString = capsule.getRandomString(); } } 나는 getRandomString이라는 메소드 이름을 보고 랜덤으로 문자열을 주는구나 생각하고 메소드를 실행시켰다. 여기서 나는 어떻게 랜덤으로 값을 뽑아주는지 모르고 결과값만을 받게 된다. 설령 아래와 같이 임의로 값을..
[정리] 라이선스(저작권)
·
개발/정리
먼저 한글로 라이센스라고 알고 있었지만 라이선스라고 한다. 개발자들에겐 라이선스란 굉장히 중요한 부분이다. 오픈소스를 가져다 기능을 구현했지만 어느날 그 오픈소스의 라이선스때문에 코드를 강제적으로 오픈해야 될수도 있다. 또한 상업적사용을 제한할 수도 있기 때문에 사용하기전 해당 소스의 라이선스를 한번 확인하는것이 중요하다. 현재 소프트웨어 라이선스 분류는 아래와 같다. 이 중 흔히 볼수 있는 라이선스는 MIT, Apache2.0, GPL 등이 있다. 1. MIT MIT 라이선스는 MIT공대에서 자기 학교의 개발자들을 위해 개발한 라이선스이다. MIT 라이선스를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다는 규정이 없으며 다른 엄격한 라이선스를 피하려는 사용자들에게 인기가 있다. 배..
[정리] 변수란 무엇일까?
·
개발/정리
지금까지 코딩을 해오며 아무 생각 없이 변수를 사용했다. 그러다 변수란 무엇일까라는 질문을 들었을때 매일 사용했던거였지만 바로 대답이 나오지 않았다. 변수란 무엇일까? 처음 질문을 듣고 메모리 주소를 가리키는 이름?? 이라고 생각했지만 확신은 없었다. 그렇다면 왜 다른이름도 많은데 하필 변수라는 이름이 탄생했을까라는 추가적인 생각이 들게 했다. 질문을 던진 분은 그릇을 빗대어 그릇안에 담는 물건은 바뀔수 있다를 비유하며 설명해주셨고 평소에 값을 변수에 담는다라는 표현을 하곤 했는데 이말을 들으니 이해가 됐다. 나무위키에 따르면 변수란 특정 값을 저장하는 메모리 공간이라고한다. 해당 메모리 공간에는 허용되는 범위 내에 어떤값이든 저장할수 있으므로 변수라고 한다고 한다. 위 고민을 거치니 '허용되는 범위 내..