2025/11 8

에라토스테네스의 체

소수를 구하는 알고리즘O(N log (log N)) 시간복잡도를 가진다. 1~100까지의 소수를 구한다면 1. 루트 100을 계산 : 102. 2부터 10까지의 수들을 차례로 순회- 2부터 100까지 수들 중 2의 배수를 모두 제거- 3부터 100까지의 수들 중 3의 배수를 모두 제거...- 10부터 100까지의 수들 중 10의 배수를 모두 제거=> 남은 수들이 모두 소수이다. 1부터 N까지의 수들 중 소수를 찾는 에라토스테네스의 체 알고리즘static List findPrimes(int N){ List primes = new ArrayList(); //소수인지 판별할 배열 boolean[] isPrime = new boolean[N+1]; //먼저 모든 수들을 true로 초기화 ..

[Servlet] File Upload

기본적으로 HTML 폼을 전송하는 방식은 application/x-www-form-urlencoded 방식이다.(Content-Type : application/x-www-form-urlencoded) 폼 전송 방식을 설정하지 않을 때 기본값으로 채택되며, 텍스트 데이터에 적합하다. url에 데이터를 인코딩하는 방식이며 key - value 형태이다. (input name = "kim" value = "25") 첨부 파일은 바이너리 데이터로 전송되며 HTTP는 첨부 파일과 텍스트 데이터 등 여러 종류의 복합적인 데이터들을동시에 전송하는 방법을 지원한다 : Content-Type : multipart/form-data package hello.upload.controller;import lombok.ex..

Java & Spring 2025.11.16

MyBatis

MyBatis는 DB에 전달할 SQL을 XML 파일에 작성하는 방식의 자바 진영 데이터 접근 기술 라이브러리이다.MyBatis의 장점 : 동적 쿼리를 매우 편리하게 작성 가능 1. 스프링에서 MyBatis 적용 방법2. 스프링에서 MyBatis 사용 방법3. XML 파일4. Mapper 인터페이스 구현체 1. build.gradle 추가implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3' 스프링 부트 버전이 2.x가 아닌 3.x라면 3.0.3을 넣어야 한다. 2. application.properties 편의 기능 추가main, test 디렉토리 모두 적용해야 테스트 상황에서까지 같이 적용된다.- mybatis.type-a..

Java & Spring 2025.11.15

[Ubuntu] Pipe, Filter, Redirection, Process

파이프 : 2개의 프로그램을 연결해주는 연결 통로, | 를 사용한다.ls -l /etc | less : ls -l /etc 의 결과를 한 페이지씩 나누어서 확인하겠다는 명령어- /etc의 결과를 모두 출력하되 한 페이지씩 나누어서 확인한다. 필터 : 필요한 것만 걸러주는 명령어, grep, tail, wc, sort 등이 있다. 주로 파이프와 같이 사용한다.ps -ef | grep bash : ps -ef의 결과에서 bash라는 글자가 들어간 것만 출력한다.- 모든 프로세스 번호를 출력 | bash라는 글자가 들어간 프로세스만 출력한다. 리다이렉션 : 표준 입출력의 방향을 바꾼다, , >>를 사용한다.(표준 입력은 키보드, 표준 출력은 마우스이며 파일 입력과 출력을 원할 때 사용한다) ls -l > l..

Infra/Linux 2025.11.11

비전공자도 이해할 수 있는 Docker 입문/실전 후기

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84 비전공자도 이해할 수 있는 Docker 입문/실전| JSCODE 박재성 - 인프런 강의현재 평점 4.9점 수강생 14,028명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 Docker 입문/실전 강의를 만들어봤습니다! Docker 기본 개념, Spring Boot를www.inflearn.com 본 게시글은 [JSCODE 박재성 - 인프런 강의] 블로그 이벤트를 통해 작성된 리뷰입니다. 목차- 도커 기본 개념 - 현업에서 자주 사용하는 도커 CLI 익히기 - ..

Infra 2025.11.09

[Ubuntu] 사용자 관리와 파일 속성

/ : 최상위 디렉토리- root- dev- home : user1, user2 ... // 사용자 전용 디렉토리- etc : 시스템 전체 설정들을 저장... 명령어 실행 시 권한 문제로 접근이 되지 않는다면 명령어 앞에 sudo를 붙이면 된다. (root 권한으로 명령어 실행) /etc/passwd : 모든 사용자 계정 정보를 저장tail /etc/passwd : /etc/passwd의 마지막 줄들을 확인- user1:x:1002:1001:,,,:/home/user1:/bin/bash- user2:x:1003:1001:,,,:/home/user2:/bin/bash사용자 이름(user1) : 암호(x) : 사용자ID(1002) : 사용자 소속 그룹 ID(1001) : 추가 정보와 홈 디렉토리 /etc/s..

Infra/Linux 2025.11.06

[프로그래머스] 완주하지 못한 선수 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/42576 HashMap을 사용하면 효율적인 코드를 만들 수 있다. Sudo Code1. HashMap 선언 - key : 참가자 이름, Value : 동명이인의 수2. 참가자들을 HashMap에 넣고, 동명이인일 경우 HashMap의 value를 ++한다.3. HashMap에서 완주자 수를 차감한다.4. HashMap에서 value가 0이 아닌 key를 찾아 리턴한다. import java.util.*;class Solution { public String solution(String[] participant, String[] completion) { String answer = "..

[네트워크] 쿠키, 세션

웹사이트에서 로그인 기능을 구현하는 것에 대해 정리해보려 한다.대학교 urp 웹사이트에 접속을 하면 로그인 기능이 필수적이다.로그인을 하지 않으면 해당 웹사이트에 들어가지 못하며, 먼저 로그인을 하라는 문구가 보여진다.위와 같은 페이지처럼 로그인 기능이 필수적인 웹사이트가 있고, 로그인을 하지 않아도 둘러볼 수 있는 웹사이트가 있다. (쇼핑몰)위와 같은 페이지들은 보통 로그인(home)을 거쳐 메인 화면(main)으로 들어간다.로그인에 실패하거나 로그인을 거치지 않고 바로 메인 화면으로 url 접속 시도 시 웹은 로그인 페이지(home)로 다시 사용자를 보내야 한다.(로그인하지 않은 사용자가 url을 입력하는 방식으로 main에 요청 시 home으로 리다이렉트) 아래는 로그인 기능 아키텍쳐의 예시이다...

CS 2025.11.02