나는 바보였다.. 먼저 컴퓨터가 무작위로 수를 뽑기 위해서 난수를 만들어야 했다. 난수를 만드는 것은 어려운 것이 아니었지만 서로 다른 난수를 뽑아야 하는 과정에서 어려움을 겪었다. 머리 속으로는 생각이 됐지만 코드로 풀어내는 것이 어려웠다.
📌 핸드폰 번호 가리기 문제점 & 시도 & 해결 📌 평균 구하기 문제점 & 시도 & 해결 📌 2016년 문제점 & 시도 & 해결
📌 완주하지 못한 선수 문제점 & 시도 & 해결 📌 이상한 문자 만들기 문제점 & 시도 & 해결
📌 정수 내림차순으로 배치하기 문제점 & 시도 & 해결 📌 정수 제곱근 판별 문제점 & 시도 & 해결 📌 제일 작은 수 제거하기 문제점 & 시도 & 해결 회고
📌 같은 숫자는 싫어 문제점 & 시도 & 해결 📌 두 개 뽑아서 더하기 문제점 & 시도 & 해결 📌 로또의 최고 순위와 최저 순위 문제점 & 시도 & 해결 회고
📌 문자열 내림차순으로 배치하기 문제점 & 시도 & 해결 📌 소수 만들기 문제점 & 시도 & 해결 📌 신규 아이디 추천 문제점 & 시도 & 해결
📌 클래스 생성 클래스 만들기 📌 문자열 계산하기 문제점 & 시도 & 해결
String my_string = "3 + 4"; System.out.println("mystring = " + mystring); int answer = 0; String[] mysplit = mystring.split("
📌 Controller ✅ Static ✅ templates (tymeleaf 엔진 O) 📌 @ResponseBody @ResponseBody (X) @ResponseBody (O)
📌 데이터를 Client 에게 반환하는 방법 📌 Jackson 📌 Path Variable과 Request Param 😎 Path Variable 😎 Request Param (Query String) 📌 HTTP 데이터를 객체로 처리하는 방법
Port 8080 was already in use 오류 메세지
📌 DI (Dependency Injection) 📌 IoC (Inversion of Control) ✅ 참고사이트
📌 영속성 컨텍스트 기능 1차 캐시 기능 쓰기 지연 저장소 (ActionQueue) flush() 변경 감지 (Dirty Checking) 📌 상태 영속 상태 비영속 상태 준영속 상태 준영속 상태 ➡️ 영속성 상태
문제점 & 시도 & 해결
📌 QueryMethod
📌 인증 & 인가 인증 (Authentication) 인가 (Authorization) 📌 JWT (JSON Web Token) JWT Util
📌 3 Layer Architecture 🛠️ Controller 👩🏻🔧 Service 📀 Repository
📌 Filter 📌 궁금한 점
📌 Spring Security 내부 동작 📌 Spring Security 가 제공한 Default 로그인 Form 📌 SecurityContextHolder
📌 문제점 & 시도 & 해결
📌 쿠키 (Cookie) 📌 세션 (Session)
📌 문제점 & 시도 & 해결
필기한 내용으로... 대신..
CRUD save()
📌 Github 순서(?)
✅ Message Entity ✅ Message Send (POST) ✅ Message SendBox (GET) ✅ Message ReceiveBox (GET)
📌 문제점 & 시도 & 해결 ✅ Reference
📌 문제점 & 시도 & 해결 ✅ JWT Util ✅ 아주 기가막힌 발상
📌 문제점 & 시도 & 해결 ✅ 시도 #1 ✅ 시도 #2 ✅ 시도 #3 ✅ 시도 #4
⏰ LocalDateTime ❌ LocalDateTime 을 사용했을 문제점 ⏰ Instant 🤔 그럼 언제 LocalDateTime을 쓰고 Instant를 쓰는가? ✅ LocalDateTime 을 쓰면 좋은 경우 (?) ✅ Instant 를 쓰면 좋은 경우 (?)
📌 문제점 & 시도 & 해결 (?)
📌 문제점 & 시도 & 해결
외래키 너무 어려워요... 나 연관관계 잘 할 수 있으까?
📌 영속성 전이 😎 cascade = CascadeType.PERSIST 😎 cascade = CascadeType.REMOVE [VS] orphanremoval = true
📌 문제점 & 시도 & 해결
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 😎 해결 ✅ Reference
📁 S3 1. dependency 추가 2. AmazonS3Config.java 추가 S3Uploader
✅ Postman Setting ✏️ @RequestBody PostRequestDto postRequestDto ✏️ @RequestPart PostRequestDto postRequestDto
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 😎 해결
😎 MutipartFile 📁 File ✅ Reference
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 😎 해결
📌 S3 이미지 폴더삭제 (코드에서) 현재 폴더 구조 😎 이미지 URL에서 폴더명 추출 😎 deleteFolder()
✅ Successful responses ✅ Client error responses ✅ Server error responses
📌 문제점 & 시도 & 해결 👿 문제점 🤔 변경 전 🤔 시도 1 (실패) 🤔 시도 2 (실패) 🤔 시도 3 (실패) 😎 해결 (성공)
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 😎 해결
😎 ObjectMetaData 란? 🛠️ 사용 방법 📂 ObjectMetadata를 이용한 파일 업로드 ✅ REFERENCE
📌 @JsonFormat 😎 YYYY.MM.DD 형태 😎 날짜와 시간 분리 (yyyy.MM.dd / HH:mm) 😎 YY.MM.DD 형태
📌 @JsonInclude 😎 @JsonInclude 여러 옵션들
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 & 해결 ✅ REFERENCE
📌 기존의 MultipartFile 을 File 로 변환해 업로드하는 방식 ✅ 작동 순서 👍 장점 👎 단점 📌 ObjectMetadata 를 이용한 이미지 업로드 방식 👍 장점
💾 메모리 💾 가상 메모리 😎 요구 페이징 (Demand Paging) 📃 페이지 폴트 (Page Fault)
✉️ 메일 보내기 1️⃣ 발신 계정 정보 추가하기 2️⃣ 발신 계정 속성 설정하기 3️⃣ 보낼 메일 template 만들기 (HTML) 4️⃣ 메일 보내는 메서드 만들기
📌 문제점 & 시도 & 해결 👿 문제점 🤔 시도 😎 해결
🤔 1. snap 으로 certbot 설치 🤔 2. 설치한 certbot 으로 SSL 받기 🤔 3. SSL 적용 ✅ REFERENCE
📌 Notification Entity 📌 Notificaiton Subscribe 📌 Notification Unsubscribe 📌 댓글 알림 📌 알림 읽음 상태
📌 @EnableScheduling 📌 NotificationDeleteScheduler ✅ REFERENCE
📌 내가 작성한 글 ⚙️ Controller 🤝🏻 Service 📌 내가 “나도 불편해요” 버튼을 누른 게시글 🤝🏻Service 📌 내가 댓글을 작성한 게시글 조회 🤝🏻 Service
📌 SSE (Server Sent Event) 👍🏻 장점 👎🏻 단점 📌 WebSocket 👍🏻 장점 👎🏻 단점 정리 ✅ REFERENCE
📌 @ExceptionHandler 📌 @RestControllerAdvice
✏️ pwd ✏️ cd ✏️ ls ✏️ mkdir ✏️ rmdir ✏️ cat ✏️ grep ✏️ lsof ✏️ tail ✏️ find ✏️ ssh ✏️ kill
🌐 인터넷의 작동 방식 ✅ 패킷 ✅ 프로토콜 🌐 단순한 네트워크 🌐 네트워크 속의 네트워크 🖥️ 컴퓨터 찾기 ✅ REFERENCE
🌐 브라우저란? 🌐 브라우저의 구조 🌐 브라우저 동작 과정 ✅ REFERENCE
🌐 DNS 란? 📌 웹 페이지 로드와 관련된 4개의 DNS 서버 📌 DNS 조회의 8단계 ✅ REFERENCE
🌐 도메인 이름이란? 📌 도메인 이름과 URL 의 차이점 📌 도메인 레벨 ✅ REFERENCE
🌐 호스팅이란? 🌐 웹 호스팅이란? 📌 웹 호스팅과 도메인 이름의 차이점
🌐 OS (Operating System) 란? 📌 운영체제의 목적 📌 운영체제의 구조 ⭐️ 커널 (Kernel) 😎 인터페이스 (Interface) 😎 시스템 콜(System Call) 😎 드라이버 (Driver) 🌐 운영체제(OS) 작동방식
⚙️ 프로그램 (Program) ⚙️ 프로세스 (Process) ⚙️ 스레드 (Thread) ✅ REFERENCE
⚙️ 운영 체제 ⚙️ 프로세스 프로세스 상태 ⚙️ PCB (Process Control Block) ⚙️ 프로세스 큐 (Queue) Queue 종류 🖥️ 멀티프로그래밍 (Multiprogramming) ✅ REFERENCE
🌐 프로세스 간 통신 (Inter-Process Communication, IPC) 📌 종류 1. 공유 메모리 (Shared Memory) 2. 파이프 (Pipe) 3. 소켓 (Socket) 4. 메시지 큐 (Mesage Queue) ✅ REFERENCE
⚙️ 스레드 (Thread) ⚙️ 단일 스레드 (Single Thread) 👍 장점 👎 단점 ⚙️⚙️ 다중 스레드 (Multi Thread) 👍 장점 👎 단점 📌 동시성 (Concurrency) 📌 병렬성 (Parallelism) ✅ REFERENCE
💾 메인 메모리 💾 메모리 관리 🤔 왜 해야해? 📌 메모리 관리 기법 연속 메모리 할당 페이징 (Paging) 세그멘테이션 (Segmentation) 세그멘테이션 페이징 혼용 기법 ✅ REFERENCE
💾 입출력(I/O) 관리 📌 중요성 📌 동기 및 비동기 I/O 📌 관리 기술 및 기법 📌 인터럽트 & 폴링
🌐 POSIX (Portable Operating System Interface) 🤔 POSIX가 왜 중요할까? ⚙️ 표준 스트림과 파이프를 통한 프로세스 간 통신 😎 표준 스트림 😎 파이프 (Pipe) ✅ REFERENCE
🌐 네트워크란? ⚙️ 주요 구성 요소 ⚙️ 유형 유선 네트워크 (Wired Network) 무선 네트워크 (Wireless Network) 다른 네트워크 유형들 ⚙️ 네트워크 계층 모델 OSI 7계층 TCP/IP 4계층 ✅ REFERENCE
🌐 네트워크 구조 📌 물리적 구조 📌 논리적 구조 🌐 토폴로지 🤔 왜 중요할까? 1. ⭐️ 스타 토폴로지 2. 🚌 버스 토폴로지 3. 💍 링 토폴로지 4. 🌳 트리 토폴로지 5. 🌐 메시 토폴로지 ✅ REFERENCE
📌 List를 String[] 배열로 변환 📌 List<Integer> 다 더하기 (Using stream)
✅ getOrDefault() 📌 Parameter
📌 remove(int index) 📌 remove(Object o)
😎 trim() 😎 strip()
💡 그것은 바로! 💡 주어진 조건을 만족하는 요소를 제거하는데 사용하는 removeIf()