본문 바로가기

분류 전체보기261

Test 시리즈 1 (사용이유, 테스트 종류) 최근 알아보고 있는데, 양이 꽤 많아서 나눠서 올리는 게 아무래도 좋을 것 같다 ㅎㅎㅎ... Test 코드를 작성하는 이유 > 운영상 장애를 겪지않기 위해 조기에 테스트 진행 > 테스트를 작성하면서 리팩토링 개선 여지 확보 > 결함을 수정하며 일정 수준까지 품질을 높이기 위해서 Test 종류 - 단위 테스트 (Unit Test) · 가장 좁은 범위의 테스트 (테스트 대상은 클래스 혹은 메서드가 일반적) · 테스트 하고자하는 컴포넌트의 기능 자체만 테스트 (통합 테스트 대비 속도가 빠름) · 통합테스트와는 다르게, DB를 작동시켜 테스트하지 않음 => HTTP 혹은 메서드 응답을 확인하기 위한 테스트 (Mock 가짜데이터로도 충분히 가능함) - 통합 테스트 (integration Test) · 애플리케이션.. 2023. 3. 8.
Http 관련 핵심 요약정보 HTTP란? (HyperText Transfer Protocol) · 웹 브라우저와 웹 서버 간에 서로 소통하기 위한 통신규약을 의미함 · 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜 · TCP/IP 기반으로 되어있음 HTTP의 특징 · Connectless (비연결성) > 클라이언트가 서버에 요청을 보내면 서버가 클라이언트에 요청에 맞는 응답을 보내준 뒤, 바로 연결을 끊는다 · Stateless (무상태성) > 각각의 요청+응답 세트는 독립적으로 진행되며, 통신을 끝낸 뒤 별도로 상태 정보를 유지하지 않는다. 그래서 추후 다음 요청+응답을 진행하여도 이전에 보낸 요청+응답을 서로 알지 못한다 (이를 해결하기 위해 쿠키와 세션같은 상태정보 저장을 이용하여 로그인 정보를 저장하기도 함.. 2023. 3. 7.
2023.03.04 TIL (위치기반 정보공유 웹 신규 프로젝트 MVP 소개) 오늘 한 일 > 위치기반 실시간 정보교환 웹 "만남의 광장"(Place Of Meeting) 프로젝트 MVP구현완료 접속링크 : https://leetils.shop (현재 위치해있는 "도시" 기준으로, 동일한 "시"에 속한 사람들끼리만 게시판 및 오픈채팅을 공유할 수 있으니마음껏 이용해보세요ㅎㅎㅎ) 추후 할 일 > 만남의 광장 프로젝트 기능 추가 및 개선 2023. 3. 4.
Timezone 트러블슈팅 (만남의 광장) - 문제상황 최근 프로젝트를 진행하던 중, localhost에서 실행했을 때 작성일자는 KST로 잘 나왔으나 실제 서비스 환경에 배포를 할 시에는 UTC기준의 시간으로 작성일자가 생성되고 있는 상황이 발생하였다. - 이유 1. AWS를 이용한 배포환경으로 인해, 해당 Server의 Timezone이 반영되어 위 상황이 발생함 (모든 Entity들은 아래 BaseEntity를 상속받고 있음) public abstract class BaseEntity { // Entity가 생성되어 저장될 때 시간이 자동 저장 @CreatedDate @Column(name = "created_at", columnDefinition = "DATETIME(6)", updatable = false, nullable = false.. 2023. 3. 4.
[Route 53 + ALB활용] http 프로토콜 사용으로 인한 HTML5 Geolocation API 제한 트러블 슈팅 (만남의 광장) - 문제상황 1. 서비스 프로젝트상, 이용자의 위도,경도 데이터를 바탕으로 서비스가 전개되기 때문에 사용자 로그인 시도 시 HTML5 Gelocation을 활용하여 위치 권한정보를 요청한 후, 허용할 시 메인화면으로 넘어가게 세팅해놓았음 2. localhost 단계에서는 로그인 시도 시 위치정보 허용기능이 이상없이 작동했으나 AWS 서버를 통해 배포한 후에는 작동하지 않아 메인화면으로 넘어가는 과정이 불가능해짐 - 이유 1. HTML5 Geolocatino API는 http 프로토콜에서 사용이 제한되어있었음 -> https와 같이 보안설정이 된 사이트가 아닌 경우, getCurrentPosition()과 watchPosition()과 같은 HTML5 Geolocation api를 사용하지 못하게 세팅되어.. 2023. 3. 1.
Stream 정리 Stream 정의 다양한 데이터 소스(ex.컬렉션(List,Set,Map), 배열)를 표준화된 방법으로 다루기 위한 것 Stream 특징 1. 데이터 소스로부터 데이터를 읽기만할 뿐, 데이터 소스(원본)은 변경하지 않는다. 2. Iterator와 같이 일회용임(추후 필요하면 다시 스트림을 생성해야함) 3. 최종 연산 전까지 중간연산이 수행되지 않는다 (지연 연산) 4. 작업을 내부반복으로 처리한다 5. 작업을 병렬로 처리한다 (병렬스트림) -> 멀티 쓰레드로 병렬처리 (parallel() 함수로 병렬 스트림으로 전환하여 빠른 처리를 지원) Stream 과정 1. 데이터 소스 Stream 요소로 변환취합 2. n번의 중간연산 과정 거침 (Stream을 이용하여 표준화된 방법으로 Stream 요소들을 기호에.. 2023. 2. 26.