본문 바로가기
728x90
반응형

분류 전체보기156

item15:클래스와 멤버의 접근성을 최소화합니다. 잘 디자인된 구성 요소와 잘못 디자인된 구성 요소를 구별하는 가장 중요한 요소는 구성 요소가 내부 데이터 및 기타 구현 세부 정보를 다른 구성 요소로부터 숨기는 정도입니다. 잘 디자인된 구성 요소는 모든 구현 세부 정보를 숨기고 API를 구현과 명확하게 구분합니다. 그런 다음 구성 요소는 API를 통해서만 통신하며 서로의 내부 작업을 인식하지 못합니다. 정보 숨기기 또는 캡슐화로 알려진 이 개념은 소프트웨어 설계의 기본 원칙입니다. 캡슐화는 여러 가지 이유로 중요하며, 그 중 대부분은 시스템을 구성하는 구성 요소를 분리하여 독립적으로 개발, 테스트, 최적화, 사용, 이해 및 수정할 수 있다는 사실에서 비롯됩니다. 이렇게 하면 구성 요소를 병렬로 개발할 수 있으므로 시스템 개발 속도가 빨라집니다. 구성 요.. 2024. 4. 23.
공통 Session server 와 JWT를 이용한 로그인 구현 with spring security multimodule,spring boot ,redis - 1 Contents 시작에 앞서 파일구조 shared-session-server/ │ ├── session-server/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ ├── sessionserver/ │ │ │ │ │ │ ├── config/ │ │ │ │ │ │ │ ├── SecurityConfig.java │ │ │ │ │ │ │ ├── RedisConfig.java │ │ │ │ │ │ │ ├── JwtTokenUtil.java │ │ │ │ │ │ │ ├── JwtAuthenticationFilter.java │ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ │ ├── AuthController.java.. 2024. 4. 9.
SQL?옵티마이저?프로시저?SQL최적화 방법?소프트파싱?하드파싱?는 무엇일까? with oracle 본 포스팅은 '친절한 SQL 튜닝' 책을 보고 정리한 내용입니다. Contents SQL란? SQL은 Structured Query Language의 줄임말이다. 말그대로 구조적 질의언어이다. 프로시저란? SQL은 기본적으로 구조적 집합적이고 선언적 질의언어이다. 프로시저는 이러한것들을 결과 집합을 만드는 역할을한다. 옵티마이저란? 프로시저를 만들어내는 DBMS 내부 엔진이며, 옵티마이저가 존재하지 않았을때 사람이 직접 프로시저를 코드로 짜서 데이터를 출력했다. 하지만 옵티마이저가 등장함으로써 사람대신 프로시저 프로그래밍을 직접 해준다. SQL최적화란? DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전과정을 'SQL최적화'라고한다. 1.SQL 파싱 사용자로부터 SQL을 전달받.. 2024. 4. 8.
주기적인 client 데이터 전송 Server Sent Event(SSE) 구축하기 with spring boot Contents Server Sent Event(SSE) 가 무엇인가? Server-sent events (SSE) 는 Real time으로 데이터를 클라이언트에 전송할수 있도록 하는 기술이다. SSE는 http 통신이며, long-lived 커넥션 기반으로 서버에서 클라이언트로 데이터를 전송한다. Sse 커넥션 관리 객체 생성 SseEmitters.java @Component @Slf4j public class SseEmitters { private final List emitters = new CopyOnWriteArrayList(); public SseEmitter add(SseEmitter emitter) { this.emitters.add(emitter); log.info("new emitter.. 2024. 4. 3.
[JAVA] BufferedReader / BufferedWriter 왜 사용할까? (분석) Contents 1. BufferedReader / BufferedWriter 란? 여러가지 입출력 관련 개발을 할때 아래와 같은 코드를 많이 사용한다. BufferedWriter br = new BufferedWriter(new FileWriter(jsonFIle)); 익숙한 개발자는 그냥 그러려니 넘어가지만 개발에 익숙하지 않은사람들은 너무 복잡해보인다. 왜 클래스안에 또클래스를 넣고 그러지?? 이런생각으로 왜 이렇게 하는지 궁금해할수도있고 그냥 다들 이렇게 쓰니깐 나도 써야지 하고 넘어간다. 나 또한 그랬다. 선배개발자들이 써놓은 코드를 그대로 복사+붙여넣기 하면서 개발을 했기에 이유도 모른채 작성했다. 그래서 이참에 왜 이것을 써야하는지 그리고 실제로 예제를 통해 실험을해보면서 검증작업도 해볼려고.. 2024. 2. 28.
Reader,Writer(문자 기반 스트림) with java Contents 문자 기반 스트림 이전 글에서 바이트 기반 스트림을 알아보았다. 이번에는 문자기반 스트림에대해 알아볼것이다. 2024.02.27 - [자바웹프로그래밍/JAVA] - InputStream,OutputStream 입출력 방식 분석 with java Reader와 Writer 란? Reader 는 문자 기반 입력 스트림 최상위 추상 클래스이고, Writer 는 문자 기반 출력 스트림 최상위 추상 클래스이다. 이들의 하위 클래스는 XXXReader , XXXWriter 이라는 오버라이드된 Reader 소개 read() 메소드 public int read() throws IOException { char[] cb = new char[1]; if (read(cb, 0, 1) == -1) return.. 2024. 2. 27.
728x90
반응형