if문 제거하기 getter와 setter stream API stream API와 Optional if문 제거하기🌳 너무 많은 if문은 코드를 읽기도 어렵고, 수정과 디버깅을 어렵게 만든다! 같은 로직이라면 if문 없이 작성된 코드가 가독성이 높은 코드가 된다. 개선방법 🤨 1. 빠르게 반환하기 Early return 각각의 if문 안에 들어있던 널 체크와 나누기 연산 시 나누는 수 0인지 먼저 검사 후 예외 처리한다. 2. Enum 안으로 넣기 3. 생성 시점에 유효성 검사 체크를 사용하는 시점이 아니라 생성하는 시점에 하기 파라미터로 받은 값이 정상적인 값임을 검사하는 것이 유효성 검사이다.(검사하여 예외를 던져주기!) 생성 시 실패하는 것을 명시적으로 호출한 쪽에 알려주기 위함이다! 리팩토링 "결..
카카오 Lv3 문제라 쉽지 않을거라고 예상했지만 역시나 어려웠다 🤯 처음 푼 방식의 경우, 주어진 테스트 케이스 두개는 통과했지만 채점 시에 맞는 테스트 케이스가 단 하나도 없었다ㅎ 설치와 삭제하는 케이스 모두 일일이 점검하면서 풀었지만, 아마 내가 생각하지 못한 케이스들이 많은 것 같다. #include #include #include using namespace std; struct FrameInfo{ int x, y, a; FrameInfo(int x, int y, int a){ this->x=x; this->y=y; this->a=a; } }; int compare(FrameInfo f1, FrameInfo f2){ if(f1.x!=f2.x){ return f1.x
JWT 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로, Json 객체를 이용한다. Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json 형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 string 형태로 저장되어 있다. JWT의 구성요소 헤더, 페이로드, 서명 헤더 Header 어떠한 알고리즘으로 암호화 할 것인지, 어떠한 토큰을 사용할 것 인지에 대한 정보가 들어있다. 정보 Payload 전달하려는 정보(사용자 id나 다른 데이터들, 이것들을 클레임이라고 부른다)가 들어있다. 서명 Signature 가장 중요한 부분으로 헤더와 정보를 합친 후 발급해준 서버가 지..
URI 특정 리소스를 식별하는 통합 자원 식별자 Uniform Resource Identifier를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. 자원의 위치뿐만 아니라 자원에 대한 고유 식별자 URI의 존재는 인터넷에서 요구되는 기본 조건으로써 인터넷 프로토콜에 항상 붙어다니며, URI의 하위 개념으로는 URL과 URN이 있다. URL Uniform Resource Locator 통합 자원 지시자 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브넷이다. 자원이 실제로 존재하는 위치를 가리킨다. 한계 🤨 리소스의 위치를 옮기면 해당 URL을 더 이상 사용할 수 없다. URL의 한계로 리소스의 위치..
REST란 HTTP를 잘사용하기 위한 아키텍쳐 스타일이다. REST는 URI와 HTTP 메소드를 사용해서 자원과 행위를 표현한다. REST의 원칙을 지키면서 API의 의미를 표현하기 쉽고, 파악하기 쉽게 하는 것을 Restful 하다고 한다. REST API란 REST한 방식으로 데이터를 상호교환하게 설계된 API를 말한다. HTTP를 잘사용하기 위해, URI와 HTTP메소드를 사용해서, URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할것인지 표현하여 설계된 API를 말한다. 로이필딩의 논문 Chapter 5.를 보면 REST 제약조건 6가지를 설명한다. Client-Server 클라이언트와 서버를 분리함으로써, 서로 의존하지 않는 구조를 가져야한다. Stateless 요청과 응답이 들어올 ..
소켓이란? 프로그램이 네트워크 상에서 데이터를 송신과 수신을 하기 위한 연결부이다. 일반적으로 TCP/IP 프로토콜을 이용하거나 WebSocket을 이용한다. TCP/IP Socket 네트워크상 서버와 클라이언트 두 개의 프로그램이 특정 포트를 통해 양방향 통신이 가능하도록 만들어주는 소프트웨어 장치이다. intranet 바운더리(조직 내 네트워크)에서 작업하는 경우에는 해당 네트워크의 컴퓨터를 제어하고 TCP 연결에 적합한 포트를 열 수 있기 때문에 TCP 소켓을 통해 통신하는 것이 더 쉽다. TCP/IP Socket은 인터넷을 통한 통신을 위한 프로토콜이기 때문에 소켓을 이용하여 양 끝단의 IP/Port 번호를 이용해 연결을 수립하고 데이터를 주고 받고, 데이터의 신뢰성을 보장한다. 기본적으로 네트워..