본문 바로가기

분류 전체보기

(89)
클래스 다이어그램 Intellij를 활용한 클래스다이어그램 생성  클래스다이어그램으로 만들고 싶은 클래스에서 오른쪽 마우스 클릭 - Diagram - Show Diagram을 누르면 다이어그램이 자동적으로 생성된다. 해당 클래스와 관계를 확인해보고 싶은 클래스들을 Drag&Drop으로 추가하여 Diagram 내용을 추가해줄 수 있다.   *아래내용은 사바라다님의 블로그 내용입니다. https://sabarada.tistory.com/72클래스 다이어그램의 기본 요소클래스 다이어그램을 그리기 위한 기본요소에 대해서 알아보도록 하겠습니다. 클래스에는 클래스의 이름, 속성, 그리고 메서드가 존재합니다. 이런 요소들은 어떻게 클래스 다이어그램에 표현할 수 있을 까요?접근제어자 리스트+ : public- : private# : p..
Spring Security 전체개념 데이터 유출의 위험성Attackers can gain access to a Wi-Fi network/router and control or monitor the data that flows through it in several ways. How Interception Happensa. Man-in-the-Middle (MitM) Attack: The attacker positions themselves between the user and the server, either by controlling a network device (like a router) or through a compromised Wi-Fi network (e.g., an insecure public Wi-Fi hotspot).b...
프로젝트 설계 일반 방법론 기능단위로 계획하기BrainStorming - 객체와 주요기능 빼내기어떤 프로젝트를 접근할때, 우선 BrainStroming 형태로 E-commerce를 사용하기 위해서 필요한 요소와 기능들에 대해서 생각에 대해서 흐름대로 나열하고 그 이후로 체계적으로 정리한다. 1차분류 - 객체와 주요기능 분류흐름대로 나열된 내용들을 파트와 큰 기능별로 1차적으로 분류한다.  2차분류 - 주요기능 구체화하기큰 기능의 작동방식을 고려해서  프로그램의 논리적 흐름이 이어지도록 세부기능들을 나열하고 구체화해본다. 기능구현을 생각할때 FE/디자인 관점에서 필요한 기능들을 고려해보면 도움이 된다.   비즈니스 플로우  / CRUD패턴 확인해보기- 어떤 식으로 최적화가 가능한지 고민해본다 그 외 그외 : 설계문서를 작성한다.- ..
서블릿 - Interception , Filter 서블릿 FilterServlet Filter is an object that can intercept and manipulate requests and responses in a web application. "filter" specifically refers to the interception and processing of HTTP requests and responses within the web application framework. (interception is a broader concept than filter) Key Concepts of Servlet Filters:Interception Mechanism: Filters work by intercepting requests before..
Spring Security - JWT 인증방식 구현 스프링 Security - Jwt Authentication 구현 흐름  SignUp 시, 사용자는 사용자 이름(username), 비밀번호(password) 등의 정보를 제공하며, 이러한 정보는 UserDetails 객체(또는 유사한 엔티티)에 캡슐화되어 데이터베이스에 저장됩니다. 비밀번호는 안전하게 해시된 후 저장됩니다. SignIn시, 입력된 자격 증명(사용자 이름과 비밀번호)은 저장된 UserDetails와 비교됩니다. 비밀번호가 저장된 해시와 일치하면, JWT 토큰이 생성되어 사용자에게 반환됩니다. 이 토큰에는 사용자의 ID나 권한 등의 정보가 인코딩되어 있습니다.  사용자가 보호된 API에 접근하면, 필터(e.g., SecurityContextPersistenceFilter)가 요청을 가로채고..
SQL과 NoSQL NoSQL관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는데 특화된 저장소스키마 없이 사용간ㅇ하거나 느슨한 스키마를 제공하는 저장소 전통적인 **관계형 데이터베이스 관리 시스템(RDBMS)**은 분산 데이터베이스와 같은 방식으로 데이터를 수평적으로 확장하는 것이 본질적으로 어렵습니다. RDBMS는 ACID(Atomicity, Consistency, Isolation, Durability) 특성을 유지하며 데이터의 일관성과 무결성을 보장하는 데 최적화되어 있는데, 이 특성 때문에 데이터베이스를 여러 노드에 분산하는 데 있어 몇 가지 중요한 제약이 있습니다.RDBMS의 확장성 제약수직 확장(Vertical Scaling)에 의존:전통적으로 RDBMS는 하나의 강력한 서버에서 실행되도록 ..
인프라 확장 스케일업 : 단일 서버(하드웨어)의 성능을 증가시켜 더 많은 요청을 처리하는 방법 스케일아웃 : 동일한 사양의 새로운 서버(하드웨어)를 추가하는 방법일반적으로, 스케일업을 할때에는 서비스 중단이나 추가적인 하드웨어 비용이 발생한다. RDBMS는 스케일 업을 하기위해서는 새로운 서버에 기존 서버의 데이터를 옮기고 데이터를 정리하는데 번거로운 작업이 필요함.반면, NoSQL은 처음부터 스케일 아웃을 염두에 두고 설계되었기때문에 데이터의 증가나 요청량이 증가하더라도 비슷한 사양의 새로운 하드웨어를 추가하면 문제가없음.   Horizontal Scaling (Scale-Out)What It Is: Horizontal scaling involves adding more machines (or nodes) to t..
매장 테이블 예약 서비스(trouble) 문제발생 및 해결 문제1. 데이터 초기값 오류  - Resource Pkg 상의 sql.data을 통해 초기값을 입력하여 테스트를 진행하고자 하였으나 Error 발생-  Entity를 AutoGenerate로 설정하였기 때문에 SQL문과 Entity 상에 표면적으로는 문제가 없어보였음- H2 DB의 Table INFORMATION_SCHEMA.COLUMNS을 확인하여 IS.IDENTITY, IDENTITY.GENERATION이 no와 Null값으로 표기된 것을 확인함.- API를 통해서 데이터를 삽입시 JPA Hibernate:  insert  into partner_entity (business_id, partner_id, partner_name, registered_at, id)  values (?, ?, ?, ?,..