일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- NamingRule
- 케밥케이스
- 카멜케이스
- 명명규칙
- PascalCase
- UDP통신
- ServerSocket
- 파스칼케이스
- Java
- 스네이크케이스
- DatagramPacket
- camelcase
- KebabCase
- udp
- DatagramSocket
- Socket
- SnakeCase
- tcp
- Today
- Total
목록분류 전체보기 (29)
MATT's

웹 환경에서 올바르지 않은 데이터를 걸러내는 데이터 검증 (validation) 작업은 Client / Server 계층 모두에게 필요하다. 간혹, Server로 요청하기 전에 Client 계층에서만 데이터를 검증하면 Server에서는 검증할 필요가 없지 않냐고 하는 사람 들도 있는데, Client 계층은 Server 계층에 비해 데이터 조작이 쉽기 때문에 Server 계층의 validation은 반드시 필요하다. # Bean Validation Server 계층에서의 Validation을 위해 Java에서는 Bean Validation이라는 데이터 유효성 검사 프레임워크를 제공한다. Bean Validation이란 어노테이션을 통해 다양한 데이터를 검증할 수 있게 제공되는 기능이다. Spring boo..
운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 메모리 관리, Garbage Collect 수행 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 정적으로 할당한 메모리 영역 원시 타입의 데이터가 값과 함께 할당 Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 동적으로 할당한 메모리 영역 Object 타입의 데이터가 할당됨 Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 Garbage collector가 stack의 모든 변수를 스캔하면서 각각 어떤 객체(Object)를 참조하고 있는지 마킹 Reachable Object가 참조하는 객체도 마킹 마킹되지 않은 객체를 Heap에서 제거 (Sweep) * 이러한 과정을 Mark a..
code 영역 실행 명령을 포함하는 코드들이 저장 data 영역 static / global 변수들이 저장 heap 영역 동적 메모리 영역 Object 클래스를 상속받는 변수 들이 저장 stack 영역 지역 변수, 매개 변수, 반환 값 등 일시적인 데이터 들이 저장되는 영역 여러 프로세스가 실행을 위해 cpu에 번갈아가며 적재되는 동작 프로세스가 계속 컨텍스트 스위칭을 하는게 부담스럽기 때문에 스레드가 생김 경량화된 프로세스 프로세스를 쪼개어 놓은 것 한 프로세스 내에서 구분 지어진 실행 단위 같은 부모 프로세스를 갖는 스레드 끼리는 자원 (code, data, heap, stack)을 공유함 컨텍스트 스위칭 시에 공용으로 사용될 자원은 그대로 두고 변경되기 때문에 훨씬 효율적 (ex. 회의실 이용 후에..
읽기 쉬운 코드가 클린 코드(Clean Code)이다. 클린 코드를 한 마디로 정의하라고 하면, 위와 같이 정의할 수 있을 것 같다. 그만큼 클린 코드의 가장 중요한 요소 중 하나는 가독성이라고 할 수 있다. 즉, 모든 사람이 이해하기 쉽도록 작성된 코드를 말한다. 가독성이 왜 중요할까? 일반적으로 기존 코드를 변경하고자 할 때, 해석하는 시간과 수정하는 시간의 비율은 10:1 정도라고 한다. 즉, 코드를 변경하기 위해 걸리는 총 시간이 11시간이라고 한다면, 그 중 코드를 분석하는데 소요되는 시간이 10시간 정도라는 뜻이다. 해석이 어려운 코드를 수정하는데는 그만큼 분석에 소요되는 시간이 더 오래 걸리기 때문에 가독성이 중요한 것이다. 또한 대부분의 결함은 기존 코드를 수정하는 동안 발생된다고 하니 오..

JMeter란? Apache JMeter는 웹 애플리케이션처럼 클라이언트-서버 구조로 된 소프트웨어의 성능 테스트를 위해서 만들어진 100% 순수 자바 프로그램이다. 한 마디로 '서버에 대한 성능을 가시적으로 볼 수 있는 도구' 성능 테스트란? '성능 테스트'란 서비스 및 서비스 시스템의 성능을 확인하기 위해서 실제 사용환경과 비슷한 환경에서 테스트를 진행하는 것을 말다. 이를 통해서 응답시간(Response Time)과 처리량(Throughput), 병목구간 등을 확인할 수 있고, 성능 테스트로 얻은 정보로 서비스나 서비스 시스템의 문제점을 확인하고 이를 개선(Tuning)하여 보완할 수 있다. JMeter 설치 방법 JMeter 설치 방법은 Mac / Windows / Linux 각 OS 별로 방법..

Postman 은 API 테스트를 위해 가장 많이 사용되는 툴이다. 나도 항상 웹 API 개발 시에는 항상 Postman을 사용해서 API 테스트를 했었는데, 이번에 Postman에 API 문서를 작성하는 기능이 있다는 사실을 알게되었다. Postman으로 API 문서를 작성하게되면, API를 테스트함과 동시에 API 문서도 같이 작성할 수 있다는 장점이 있다. 이제 Postman으로 API 문서를 작성하는 방법에 대해 알아보자 먼저 API 문서를 만들기 위해 테스트 API 를 생성해보자 1. workspace 생성 - 말그대로 '작업 공간'을 의미한다. -Visibility 옵션을 선택해서 해당 workspace에 접근할 수 있는 사용자를 제한할 수 있다. 2. Collection 생성 - Collec..

이 글 전에 비동기 처리에 관한 글을 썼는데, 사실 promise에 대해 작성하기 위해 사전 지식으로 쓴 글이였다.. ([JS] 비동기 처리(Asynchronous)) promise란? 한마디로 표현하자면, 프로미스는 자바스크립트 비동기 처리에 사용되는 객체 비동기 처리 : 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 처리 방식 promise를 사용하는 이유 프로미스는 JS에서 비동기 처리 시 조금 더 가독성 좋고 편리하게 사용하기 위해 사용되는 객체이다. 위와 같이 Promise를 사용하지 않은 코드를 Promise를 사용하여 구현할 경우, 좀 더 코드가 명확해지고 가독성이 좋아지는 것을 확인할 수 있다. promise의 3가지 상태(states) 프로미스는 생성되고 종료..

비동기 처리(Asynchronous)란? 특정 코드의 연산이 끝날 때까지 뒷 부분의 코드의 실행을 멈추는게 아니라, 특정 코드의 연산을 시작하고 바로 뒷 부분의 코드를 시작하는 처리 방식을 뜻한다. 웹에서 비동기 처리가 필요한 이유가 뭘까? 흔히 웹 페이지에서 화면에 데이터가 출력되기 전에 화면 중앙에 로딩바가 출력되는 것을 본 적이 있을 것이다. 이와 같은 상황에서 동기 처리가 된다면, 데이터가 전부 출력되기 전에는 다음 로직을 수행할 수 없기 때문에, 데이터가 전부 출력되지 않더라도 다른 기능들을 사용할 수 있도록 비동기 처리가 필요하다. JS에서의 비동기 처리 JS에서 비동기 처리를 하는 대표적인 예로는 ajax가 있다. 보통 화면에 표시할 이미지나 데이터를 서버에서 불러와 표시할 때 ajax 통신..