개인 공부

개인 공부/Java

[Java] 제네릭

🐥 제네릭이란 무엇일까 ? 제네릭이란 컴파일 타임에 타입을 체크함으로서 코드의 안정성을 높여주는 기능입니다. 🐣 제네릭은 왜 사용할까 ? 제네릭을 사용하면 컴파일 타임에 강력한 타입 검사와 형 변환을 없앨 수 있다는 장점이 있다. 자동으로 개발자가 의도한 대로 설계할 수 있다는 장점이 있다. List strList = new ArrayList(); strList.add("string"); strList.add(1); String result = (String) strList.get(0) + (String) strList.get(1); //런타임 에러 List genericList = new ArrayList(); genericList.add("string"); genericList.add(1); //컴파..

개인 공부/테크 지식

[Tech] 테스트 코드 작성하는 법

테스트 코드를 작성하는 법은 딱히 정해지지 않았다. 어떤 기준을 잡고 테스트 하느냐에 따라 일의 효율과 의미가 달라질 것이라 생각된다. 때문에 효율적인 테스트 코드를 작성하는 기준을 정해보려 한다. 본 게시글은 여기어때 테크 블로그를 참고하여 작성하였습니다. https://techblog.gccompany.co.kr/즉시할인쿠폰이-테스트를-작성하는-방법-cb70b1ae74f7 즉시할인쿠폰 파트가 테스트 코드를 작성하는 방법 안녕하세요. 여기어때컴퍼니 파트너혜택개발팀에서 즉시할인쿠폰 업무를 담당하고 있는 Kent입니다. 즉시할인쿠폰 파트 내에서 테스트 코드를 작성하는 방법에 대해 소개 해보겠습니다. techblog.gccompany.co.kr 🥑 가치 있는 테스트 코드를 작성해라 ! 여기어때 즉시할인쿠폰 ..

개인 공부/전공 지식 정리

[Network] WEB vs WAS

WEB 서버 웹서버란 크게 두가지 측면으로 나눌 수 있다. 하드웨어 : 웹사이트의 정적 컴포넌트 파일을 저장한다 (html, css, javascript). 또한 요청에 맞게 해당 파일들을 건내준다. 소프트웨어 : 클라이언트로부터 HTTP 요청을 받아들이고, 해당 파일에 어떻게 접근하는지를 관리한다. WAS WAS 란 (Web Application Server) 의 약자로, 인터넷 상에서 HTTP 를 통해 클라이언트 장치에 애플리케이션을 수행해주는 미들웨어이다. 웹 서버와 웹 컨테이너를 합친 구조이며, 보통 동적 서버 콘텐츠를 수행함으로서 WEB 서버와는 구분된다. 또 데이터베이스 서버와 함께 수행된다. 차이점 구조상 다른 점은 웹 컨테이너의 유무이다. WEB 서버는 HTML 문서와 같은 정적 컨텐츠를 ..

개인 공부

[운영체제] 프로세스와 스레드

프로세스 프로세스란 메모리에 적재되어 실행되고 있는 프로그램의 인스터스다. 프로세스는 각각 독립적인 메모리 영역을 할당받는다. 즉 각각의 프로세스는 실행 메소드 영역인 Code 영역, 정적 변수 static이나 글로벌 변수를 담는 Data 영역, 동적 메모리를 위한 Heap 영역, 지역변수 매개변수 반환 값을 담는 Stack 영역이 메모리 공간을 확보한다. 또한 해당 프로세스에 대한 정보를 담고 있는 PCB 블록 또한 만들어진다. PCB 블록은 해당 프로세스 상태 정보인 process state, 고유번호 PID, 그리고 다음 명령어를 가리키는 프로그램 카운터 등이 담겨져있다. 기본적으로 프로세스는 최소 1개의 메인스레드를 가진다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세..

개인 공부/전공 지식 정리

[Socket] WebSocket 이란 ?

WebSocket 이란 ? HTTP 와 같은 Transfer Protocol 이다. 즉 통신하기 위해 지켜야 하는 규약이다. HTTP 와 다른 점은, 서버와 클라이언트 간에 효율적인 양방향 통신을 위한 규약이라는 점이다. 통신이 끝난 후 연결을 끊지 않기 때문에, 데이터를 보낼 때 추가적인 액션 ( 버튼을 누른다거나 ) 이 필요가 없다. HTML5 환경에서 자주 쓰인다고 한다. Web Socket과 TCP 웹 소켓은 연결 요청에 대해 HTTP를 통해 Switching 및 HandShaking이 이루어진다. TCP는 Binary 데이터만 주고 받을 수 있으나, 웹 소켓은 Binary와 Text 데이터도 주고 받을 수 있다. Web Socket과 HTTP 웹 소켓 연결할 때 HTTP 요청으로 시작하나 ( 보..

개인 공부/전공 지식 정리

[Socket] Http 통신과 Socket 통신의 차이점

HTTP 통신 HTTP란 HyperText Transfer Protocol 의 약자로, 말 그대로 HTML 파일 보내기 위한 프로토콜이였다. 현재는 JSON 형태로 많이 보낸다. 클라이언트와 서버간의 단방향 통신이며, 클라이언트 요청에 대한 서버의 응답으로 이루어져 있다. 통신이 끝난 후 대부분 연결을 끊는다. 소켓 통신 소켓 통신이란 클라이언트와 서버 간의 양방향이 가능한 통신 방식이다. 서버도 클라이언트에게 응답 값을 요청할 수 있다. 요청이 끝나도 연결이 유지된다. 데이터를 자주 주고 받는 스트리밍, 채팅 통신에 유리하다.

개인 공부/Devit

[Devit] #2 유저 설계 ( Token, RabbitMQ )

구현 해야 하는 기능. 유저 헤더에서 토큰 값 가져와 유저 구분하기 (uuid) 유저 생성 ( RabbitMq 이벤트 처리 ) 유저 수정 (API) 유저 프로필 조회(API) 헤더에서 토큰 값 가져와 유저 구분하기 MSA 패턴에서 모든 요청은 GateWay 서버로 들어온다. 때문에 GateWay 에서 유저 인증, 인가처리에 대해서 모두 마친 후, 인증된 데이터를 토큰으로 만들어 헤더에 담는다. 그 헤더를 다시 해당하는 url에 맞추어 각 서버로 API 요청을 보낸다. 때문에 우리는 헤더의 유효성을 체크하지 않고, 그저 데이터를 가져다 사용하기만 하면 된다. public ResponseEntity getProfile(@RequestHeader("Authorization") String data) throw..

개인 공부/Devit

[Devit] #1 아키텍처 설계

프로젝트 개발에 앞서, 본 서비스의 소개와 아키텍처에 대해 간략히 소개해보자. 더불어 내가 맡은 도메인들을 소개할 것이다. What ? 우리 팀은 개발자들을 위한 구인구직 웹 서비스를 계획했다. 구인구직 서비스는 많은데 ? 맞는 말이다. 때문에 차별성을 위해 우리는 개발자들에 초점을 맞추었다. 세상에는 정말 다양한 개발자가 존재한다. 학생, 인턴, 주니어, 시니어, 등등 ,, 개발자의 역량마다 할 수 있고, 해야하는 일은 전부 다 다르다. 예를 들어 간단한 초중학교 코딩 교육을 10년차 시니어 개발자가 할 수 없지 않는가 ? 용돈이 필요한 대학생 개발자가 적합할 것이다. 이처럼 우리는 일을 난이도, 역량에 맞추어 구분할 것이며 이를 적합한 개발자들에게 맞춤형으로 제공할 계획이다. ( feat .. 내가 ..

Da2isy
'개인 공부' 카테고리의 글 목록 (6 Page)