fas

ALL

· PROJECT/KOSA
⌨️ 로그인 구현 이번 세션 로그인을 구현하며 가장 많이 공부가 된 파트, 그리고 고민을 한 부분이다. 1. 로그인 로직 고민 세션 로그인 자체는 쉽게 기간의 문제 상 쉽게 접근했다. 로그인 시 세션에 로그인한 유저의 정보를 저장하고 필요한 곳에서 가져다 쓰는 간단한 방식으로 구현을 완료했다. 그 와중 해당 방식에서의 많은 중복과 불편함이 발생했기에, Spring Security처럼 필터를 두어 로그인을 처리하기로 했다. 1.1. LoginCheckFilter @Slf4j public class LoginCheckFilter implements Filter { // TODO 로그인이 필요 없는 URL 추가 private static final String[] whiteList = { "/", "/sign..
· PROJECT/KOSA
⌨️ 회원가입/로그인 구현 요즘은 Spring Security를 활용하면 쉽게 회원가입과 로그인을 구현할 수 있다. 그러나 그러한 기술의 필요성과 내가 직접 구현 했을 때의 부족함을 비교해 보기 위해 직접 세션 방식으로 구현해보려 한다 1. 회원가입 많은 양의 정보를 받기보다 우선 필요한 최소한의 정보를 받아서 회원 가입을 구현하려 한다. 1.1. UsersDTO @Getter @Setter @ToString public class UsersDto { private int id; @NotBlank(message = "아이디 입력은 필수입니다.") @Length(max = 30, message = "아이디 길이는 30자 를 넘으면 안됩니다.") private String name; @Pattern(rege..
· PROJECT/KOSA
⌨️ KOSA 교육과정 미니 프로젝트 진행 한국소프트웨어산업협회에서 진행하는 풀스택 기반 MSA 개발자 과정의 첫 번째 프로젝트를 진행하게 되었다. 이제 처음부터 구현 한 부분을 정리하고, 새롭게 배우고 그간 고민 했던 것이 해결 된 부분을 공유하려 한다. 1. 기획 및 사용기술 1.1. 개요 최근 러닝과 걷기 운동 등 일상속에서의 운동을 취미로 하는 사람들이 많아짐에 따라, 해당 취미를 공유하는 사람들을 위한 커뮤니티를 만들고 서로의 경로를 공유하여, 많이 알려진 경로가 아닌 색다른 경로로 산책을 즐길 수 있게 하는 것에 목적을 개발을 결정 1.2. 프로젝트 기간 및 기술 1) 프로젝트 기간 2023.10.13~2023.10.23 2) 사용 기술 Front-end : HTML5, CSS3, JacaSc..
1. 그리디 현재 상태에서 보는 선택지 중 최선의 선택지가 전체 선택지 중 최선의 선택지라고 가정하는 알고리즘 1. 1.그리디 알고리즘의 핵심이론 그리디 알고리즘 수행 과정 해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택한다. 적절성 검사 : 현재 선택한 해가 전체 문제의 제약 조건에 벗어나지 않는지 검사한다. 해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다. 전체 문제를 해결하지 못한다면 1로 돌아가 같은 과정을 반복한다 1.2 그리디 문제 BOJ https://www.acmicpc.net/problem/11047
⌨️ 채팅방 생성 및 빌더와 팩토리메서드 패턴에 대한 고민으로 마무리 채팅방 생성을 아직 DB와 연결하지 않았지만 `Entity` 에서 가져다가 쓰는 방식으로 DTO를 만들었고, 그 과정에서 자주 사용하던 팩토리 메서드 방식의 생성 패턴과, 빌더 방식의 생성 패턴에 대한 고민을 하며 마무리하였다. 1. ChatRoom 채팅방 엔티티와 DTO 구현 1.1. ChatRoom import com.example.chat.constant.MessageType; import com.example.chat.service.ChatService; import lombok.*; import org.springframework.web.socket.WebSocketSession; import java.util.HashSet;..
⌨️ Docs 확인과 통신 확인으로 마무리 당초에 공부해야지 하고 기획했다가 이것저것 하다가 많이 미루어져서 이제야 조금 코드를 끄적인다. 1. WebSocket 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜 일반 socket 통신과 달리 HTTP 80 포트를 이용하므로 방화벽에 제약이 없다. 접속까지는 HTTP 프로토콜을 이용 하고 이후에는 WebSocket 프로토콜로 통신 1.1. WebSocket 통신 방식 WebSocket 접속 과정은 TCP/IP 접속 그리고 WebSocket Established Handshake 과정으로 나눌 수 있다. i) WebSocket 열기 Handshake 클라이언트가 먼저 핸드셰이크 요청 -> 서버가 클라이언트에 응답 Han..
⌨️ 다익스트라 특정 노드에서 다른 노드들의 최단 거리를 구하는 문제가 주어졌을 때 다익스트라 알고리즘을 사용하여 문제 해결 가능 기능 특징 시간 복잡도(노드 수: V, 에지 수 :E) 출발 노드와 모든 노드 간의 최단거리 탐색 에지는 모두 양수 O(ElogV) 1. 다익스트라 알고리즘의 핵심 이론 1.1. 인접 리스트로 그래프 구현하기 그림 자리 다익스트라 알고리즘은 인접 행렬로 구현해도 좋지만 시간 복잡도 측면, N의 크기가 클 것을 대비해 인접 리스트를 선택하여 구현하는 것이 더욱 좋다. 그래프의 연결을 표현하기 위해 인접 리스트에 연결한 배열의 자료형은 (노드, 가중치)와 같은 형태로 선언하여 연결 1.2. 최단 거리 배열 초기화하기 최단 거리 배열을 만들고, 출발 노드는 0, 이외의 노드는 In..
· LIFE/취업
⌨️ 첫 채용설명회 그간 채용 설명회에 참석해 본 경험이 전무했던 나이지만, 지속적인 개발과 인프라에서의 고민에서 좋은 경험이 될 거라 생각하여 신청하였다. 1. 후기 1.1 . AWS 데이터 센터에서의 직업 우선 데센에서 일을 하는 것에 분업이 너무 잘되어있다는 느낌을 받았다. 일반적인 국내 업체의 경우 하나로 합쳐져 있는 역할이 세세하게 나뉘어 있었다. 1.2. 심각한 수준의 개발자 몰림 현상 프로그램 진행 중 RoundTable 이라고 현업 종사자 분과의 이야기를 나눌 수 있는 기회가 있었다. 다양한 이야기를 나누어 본 결과, 나의 결론은 이랬다 IT == 개발 현 상황이 그렇다. IT를 얘기 하면 당연하게도 개발자를 연상케 된 것 같다. 다양한 이유로 현재는 IT를 희망하는 청년층 인력이 대부분..
개요 1. Spring Boot + WebSocket, STOMP를 활용하여 채팅창 만들기 HTTP 방식이 아닌 WebSocket 방식이 필요한 이유를 이해하고, 해당 방식을 구현하여 실시간 채팅창 만들기 2. 하나의 서버에서 모든 서비스가 제공 되는 것이 아닌 분할하여 서비스를 제공하는 것을 목표로 함 하나의 Spring 서버에서 모든 서비스를 제공하는 것이 아니라, 각각의 서버를 따로 두어 필요하면 합치는 식으로 모듈 형태로 개발해보려 합니다. 예를 들어, 다른 서비스에 채팅창이 필요하다면, 이 채팅창 서비스를 결합한다든지 하는 과정 3. 이번 주 내로 채팅창 구현은 완료하고, 서비스 로직에 대하여 고민해 보거나, 고려할 만한 사항들에 대하여 체크하기 도메인을 작게하여 서비스를 완성시키는 것에 대해 ..
ckaanf
'분류 전체보기' 카테고리의 글 목록 (6 Page)