본문 바로가기

728x90

전체 글

(67)
채팅 기능 구현 방식 정리 대학생 때 웹소켓을 사용해 채팅을 구현하면서 다시 개발에 빠졌던 기억이 있다,지금은 개인적으로 하고 있는 프로젝트에 채팅 기능을 구현해보는 중이다.그래서 채팅 기능을 구현하는 방법에는 어떤 종류들이 있는지 알아보고자 한다. 지금 프로젝트에는 빠르게 기능만 구현해보고자해서 짧은 주기의 polling 방식을 적용했는데,아무래도 적용해보니 실시간으로 받는 느낌도 안들고, api를 너무 많이 요청해서 websocket으로 바꿀 예정이다. 1. 짧은 주기 Polling클라이언트가 일정 주기마다 서버에 요청을 보내 새 메시지를 확인하는 방식이다.예시GET /chat/rooms/{roomId}/messages?after=... 특징3초, 5초 등 일정 주기로 요청기존 REST API 구조 그대로 활용 가능장점구현이 ..
햄스터 김햄이의 초상권 보호 & 얼굴 스티커 리부 리뷰 오늘은 귀여운 캐릭터 스티커를 보여드리죠!햄스터 김햄이의 초상권 보호 & 얼굴 스티커입니다!!!​햄스터인 김햄이가 나오는 스티커에요 너무 기엽네요 ㄷㄷ​https://naver.me/GXF0UpXM 햄스터 김햄이의 초상권 보호 & 얼굴 스티커 : 잠마니 - 네이버 OGQ마켓햄스터 김햄이의 얼굴 스티커입니다 | 햄스터 김햄이의 초상권 보호 & 얼굴 스티커 : 잠마니ogqmarket.naver.com 당장 사서 써봐요!!!​https://naver.me/xNpo3Zbh 잠마니 크리에이터 프로필잠마니의 작품과 프로필을 확인하세요.ogqmarket.naver.com
@Transactional에 대해서 @Transactional은 스프링으로 개발을 하게되면 Service Layer에서 붙이게 되는 어노테이션이다.스프링(Spring) 프레임워크에서 트랜잭션 관리를 위한 선언적 방식이다.메서드 레벨, 클래스 레벨에서 사용할 수 있으며, 해당 메서드 또는 클래스의 모든 public 메서드에 트랜잭션을 적용한다. @Transactional가 붙은 메서드를 실행할 때스프링은 트랜잭션을 시작하고, 메서드가 정상적으로 종료되면 트랜잭션을 commit한다.만약 예외가 발생하면 트랜잭션을 rollback한다(즉, 비정상적인 종료로 인해 rollback이 발생할 경우에는 트랜잭션의 일부 작업만 데이터베이스에 반영되는 것을 방지해 데이터 일관성을 유지한다)트랜잭션이란?하나의 논리적인 작업 단위ex) 하나의 트랜잭션은 여..
웹서버와 WAS 웹서버와 WAS의 동작 방식 (요청 → 응답 흐름)1. 요청(Request) 발생사용자가 브라우저 또는 앱에서 URL 입력, 버튼 클릭 등의 행동 → HTTP(S) 요청 발생요청에는 URL, 메서드(GET/POST 등), 헤더, 쿠키, 본문 데이터 등이 포함됨 2. 웹서버(Web Server) 처리예시: Nginx, Apache주 역할:정적 파일(HTML, CSS, JS, 이미지 등) 직접 응답SSL 종료(HTTPS 처리)리버스 프록시(백엔드 WAS로 전달)동작 흐름:요청 분석 (정적 리소스 여부 판단)정적 리소스 → 바로 응답동적 요청(API, DB 필요) → WAS로 전달 3. 웹 애플리케이션 서버(WAS) 처리예시: Tomcat, JBoss, Node.js, Spring Boot 내장 서버주 역할:..
VO, DTO, DAO 값(데이터)을 주고받는 방법에는 VO, DTO, DAO가 있습니다. VOVO는 Value Object로써,DTO와 유사하다고 할 수 있습니다.그러나 DTO와 다른 점은 Read-Only 특징(getter만 가능하다)입니다.VO는 값의 수정이 불가능합니다. DTODTO는 Data Transfer Object로써,계층( Controller, Service, 등)간 데이터를 이동할 때 사용되는 객체입니다.로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖습니다.DAO DAO는 Data Access Object로써,데이터베이스와 가장 가까운 객체라고 할 수 있습니다.데이터베이스에서 값을 CRUD할때 이용되는 객체입니다.
스프링이란 스프링의 종류스프링 프레임워크 - 스프링의 가장 핵심 스프링 부트 - 여러가지 스프링 기술들을 편리하게 사용할 수 있게 도와주는 것스프링 데이터 - CRUD를 좀 더 편리하게 사용할 수 있게 도와주는 것스프링 세션 - 세션 기능을 편리하게 사용할 수 있도록 해주는 것스프링 시큐리티 - 보안과 관련된 것스프링 Rest Docs - API 문서와 테스트를 엮어 문서화를 편하게 해주는 것스프링 Batch - 대량의 데이터 업데이트를 처리하는 것에 도움을 주는 것스프링 클라우드 - 클라우드 기술에 특화된 기술등등이 존재한다. 보통 스프링 부트를 많이 사용한다. 스프링 부트는 스프링을 편리하게 사용할 수 있도록 도와주는 기술이다.스프링 부트가 외부 라이브러리 버전 등이나 설정 같은 것을 알아서 맞춰서 설정해준다...
스프링 시작하기 현재 IDE로는 sts 이클립스를 사용하고 있다.sts내부에서 스프링 부트를 사용해서 프로젝트를 생성할 수 있다.https://start.spring.io/ 위의 사이트 형식 그대로 sts에서 사용할 수 있도록 되어있다.    가장 처음에는 프로젝트 이름과 패키지명을 정하고, 빌드 타입(maven, gradle), 패키징(jar, war), java버전, 언어(java,kotlin,groovy)를 선택한다.다음으로 어떤 라이브러리를 포함할지 선택한다.여기서 선택하지 않아도 추후에 추가가 가능하다.finish를 누르면 프로젝트가 생성된다.프로젝트이름Application.java 파일을 spring boot app으로 실행시키면 서버가 구동된다. 로컬일경우 localhost:8080으로 접속하면 아래의 페이..
쇼핑몰 만들기(13)-고객 페이지(구매확정, 리뷰 기능, pw히스토리 테이블 생성) 이번에는 고객이 구매를 확정하는 기능,리뷰를 작성하는 기능을 구현하고자한다.또한 비밀번호를 변경 할 경우 이전에 사용했던 비밀번호를 관리하기위해(이전에 사용했던 pw 사용못하게 하는 등) pw히스토리 테이블을 만들고 만들었던 기능을 좀 변경하도록 하겠다 리뷰를 작성하기 위해 따로 리뷰 테이블을 생성한다.리뷰 테이블의 기본키를 주문 테이블의 주문 번호로 설정해서, 주문 번호 하나당 리뷰 하나를 작성 할 수 있도록 한다.그리고 상품 상세페이지에 들어갈때 해당 리뷰도 같이 출력하게 할것이다 아래는 리뷰 테이블을 생성한 것이다.orders_no는 주문테이블의 기본키이고 리뷰테이블에서는 기본키이자 외래키이다. 리뷰 테이블을 생성했으니 구매확정 기능을 통해 구매확정을 하고, 리뷰를 작성하는 기능을 구현하겠다. up..

728x90