일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- 코딩테스트
- Git
- 부트캠프
- Java
- GitFlow
- 값 타입
- spring
- 연관관계
- 멋쟁이사자처럼
- 반복문 탈출
- springboot
- break-label
- orm
- 커밋 컨벤션
- responsepart
- 제작기
- Visual Basic
- PDF병합
- 프로그래머스
- 테킷
- 알고리즘
- querydsl
- VB
- DOCS
- 체인호출
- Hibernate
- spring jpa
- PDFBOX
- 스프링부트 쇼핑몰 프로젝트
- Today
- Total
목록분류 전체보기 (45)
섭섭한 개발일지
IP 인터넷 프로토콜의 역할 - 지정한 IP 주소에 데이터 전달 - 패킷이라는 통신 단위로 데이터 전달 IP패킷 정보 패킷에는 출발지 IP주소와 목적지 IP 주소 그리고 내용 등이 포함되어 있다. 클라이언트 패킷 전달 패킷은 인터넷상에 있는 노드들로 전달이 되며 목적지 IP주소까지 전달된다. 서버 패킷 전달 클라이언트 패킷 전달과 반대로 작동이 된다. IP 프로토콜의 한계 - 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 - 비신뢰성 : 중간에 패킷이 사라지면? : 패킷이 순서대로 안오면? - 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? 참고자료 인프런 - 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한)
HTTP 메세지는 3가지로 나뉘어있다. - Start Line : 한 줄로 이루어져 있으며 첫번째 행의 값은 무조건 시작라인으로 절대로 두 줄이 될 수 없다. - Header : 헤더는 첫 줄을 제외한 공백라인이 나오기까지의 속성이다. - Body : 헤더 다음에 오는 모든 값은 Body이다. Start Line 흔히 알고 있는 GET / POST 등의 요청 메세지이며 클라이언트가 서버로 요청을 하는 메세지는 HTTP Method, 경로 및 정보, HTTP Version으로 이루어져있다. HTTP Method 메세지를 수신하는 서버에서 어떠한 작업을 해야하는지에 대한 정보가 있다. GET / POST / PUT / PATCH / DELETE 등이 있다. 경로 및 정보 리소스가 위치한 경로이며 클라이언트 ..
자바에서는 포인터라는 단어를 본 적이 없을 것이다. 포인터는 주로 C언어에서 다루는 자료구조이다. 포인터는 Low level 언어에서 사용되며 개발자가 컴퓨터의 메모리에 직접적으로 접근해서 제어할 수 있는 도구다. 조금 더 친숙하게 알아보자 int a = 10; 위 코드에서는 10을 a라는 변수에 저장을 했다. 변수의 개념을 처음 배울때로 거슬러가면 나는 변수를 상자에 비유해서 배웠었다. A라는 이름의 상자에 10을 넣는 것이다. 여기서부터 포인터를 이해하려면 자료가 저장되는 개념에 대해서 알아야한다. 예시에서 사용한 int 자료형으로 개념을 알아보자 int 자료형의 크기는 4byte 다 아래 그림과 같은 메모리 공간에 10이라는 숫자를 저장하는 것이다. 메모리 공간은 바이트마다 고유의 주소값을 가지고 ..
개념 자료구조란 데이터의 집합을 이야기한다. 각 데이터 간의 관계가 일정한 규칙에 의거하여 나열되고 자료를 처리하기 위해 체계적으로 구분하여 표현한 것이다. 자료 구조를 알아야하는 이유 - 데이터를 체계적이고 효율적으로 사용하기 위함 - 특정한 상황의 문제를 처리하는데 특화 기본적인 자료구조 7개 - Array - Stack - Queue - Linked list - Hash Table, Hash map - Graph - Tree 자료구조마다 시간 복잡도가 존재하며 효율적인 문제 해결을 위해서는 상황에 맞는 자료구조를 선택할 수 있는 능력이 필요하다. 각 자료 별로 특징을 이해한다면 문제해결 능력은 한층 좋아질 것이다. Array (배열) Array는 기본적인 데이터 구조이다. Array는 생성 시 크기..
쿠키, 세션, 캐시를 간단하게 이해하기 위해 A라는 웹사이트를 "울라라스파"라는 사우나로 예시를 들어보자 이 사우나에서는 회원등록을 하고 입장하며 사우나 이용을 마치고 나올 때 비용을 지불하는 시스템을 사용한다. 쿠키 쿠키북은 사우나에서 이용한 시설들의 내역을 작성하는 책자이다. 이 쿠키북은 사우나에서 체크를 해주거나 자신이 직접 체크를 하는 방법이 있으며 쿠키북은 수정이나 삭제가 자유롭다. 이용객이 직접 들고다니는 책자이니 만큼 도난의 우려도 있다. :: 쿠키는 웹사이트를 방문하고 이용할 때 브라우저에 저장되는 값이다. 브라우저는 클라이언트가 가지고 있으므로 클라이언트 측에서 관리를 하는 값이 쿠키인 것이다. 쿠키의 문제점은 클라이언트가 임의로 수정, 삭제가 가능하고 보안에도 취약하다. 세션 쿠키북에 ..
프로젝트에서 검색조건이 까다로운게 있었다. 상품을 검색할 때 선택한 카테고리 + 검색어를 통해 카테고리에 해당하면서 검색어를 포함한 상품을 반환하는 Query를 생성해야한다. 아래는 작성한 코드에서 생각대로 작동되지 않는 코드였다. List items = jpaQueryFactory .select(item) .from(item) .leftJoin(itemProduct).on(item.eq(itemProduct.item)) .leftJoin(product).on(itemProduct.product.eq(product)) .leftJoin(maker).on(product.maker.eq(maker)) .leftJoin(category).on(item.category.eq(category)) .where(ca..
프로젝트에서 데이터가 생성되면 create_at 필드에 생성 일자 데이터가 삽입된다. 프로젝트 로직에서 생성된 데이터의 스테이터스가 일정 시간이 지나도 변경되지 않으면 해당 데이터를 삭제하는 로직이 필요했다. SQL로 작성한 바는 아래와 같았다. SELECT id, time(created_at) FROM restaurant_order WHERE time (subdate(now(), INTERVAL 30 MINUTE)) >= time(created_at) AND status = 1 AND deleted_at IS NULL; 이걸 QueryDSL JPA 로 표현을 해야하기에 찾아보고 테스트 해본 결과 아래와 같이 작성을 하면 SQL과 동일하게 작동이 되었다. public List findOrderToDele..
public static String getEntityType(BaseEntity entityObj) { for (EntityTypeV2 entity : EntityTypeV2.values()) { if (entityObj.getClass().isInstance(entity.entityObj)) { return entity.entityType; } } throw new BusinessException(HttpResponse.Fail.NOT_FOUND); } enum에서 사용하는 메서드인데 class 타입을 비교해주는 메서드이다. 프로젝트에서 이미지를 s3에 저장하거나 db에서 불러올 때 entity의 타입이 필요로 하는데 편의성을 위해 BaseEntity를 통해서 처리를 하는 기능을 만들었었다. 이때까지..