멋사 부트캠프
-
03. 연결리스트멋사 부트캠프/자료구조 2025. 4. 17. 22:33
1. 연결리스트 구조 head : 최초에 노드의 주소를 담으며 더미노드(아무것도 없는 빈 껍데기 노드)를 만들어 구현한다. -> Node { int data, Node next } -> 가리키는 주소가 절대 변경되면 안된다. (링크가 깨짐) Tail : 이중 연결리스트에 필요, 노드의 맨 끝을 가리킨다. key(data) : data를 담을 일반 변수next(&) : 다음 노드의 주소를 담을 포인터 변수(Java 에서는 포인터변수 개념이 없기 때문에 객체로 대체한다.) => 위의 개념을 바탕으로 [삽입,삭제,탐색]을 구현한다. => 맨뒤에 삽입(addLast), 맨앞에 삽입(addFirst), 맨뒤에 삭제(removeLast), 맨앞에 삭제(removeFisrt), ..
-
15. Thread멋사 부트캠프/Java 프로그래밍 2025. 4. 14. 12:37
✅ 기본 정리 1) 직렬 처리 (순차 처리 / Sequential Processing) - 하나의 작업이 끝나야 다음 작업 시작. CPU는 한 번에 한 가지 일만 처리함.2) 2) 병렬 처리 (병렬 프로세싱 / Parallel Processing) - 여러 작업을 동시에 처리. 여러 스레드 또는 프로세서가 동시에 일함. ✅ 기본 구문// 동기화 기초 - synchronized 메서드 사용public class e_SynchronizationBasic { public static void main(String[] args) throws InterruptedException { //람다식에서 외부 변수를 참조할 때 final 이어야 한다. final int[] count ..
-
001. JDBC - MVC 패턴 설계멋사 부트캠프/JDBC 2025. 4. 8. 17:42
1. MVC 패턴 구조도com.person ┣ controller ┃ ┗ PersonController.java ← 클라이언트 요청 처리 ┣ service ┃ ┗ PersonService.java ← 비즈니스 로직 처리 ┣ dao (= repository) ┃ ┗ PersonDao.java ← DB 접근, 쿼리 실행 ┣ model (Entity) ┃ ┗ Person.java ← Entity: DB 테이블과 매핑되는 순수 객체 ┣ dto ┃ ┗ PersonDto.java ← DTO: Controller ↔ Service 간 데이터 전달용 객체 ┗ config ┗ DatabaseCon..
-
002. JDBC with Mysql멋사 부트캠프/JDBC 2025. 4. 7. 18:06
1. 기본 DB Connectimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/yourdb?serverTimezone=UTC"; private static final String USER = "yourUsername"; private static final String PASSWORD = "yourPassword"; public static Connection getConnection() { try { ..
-
02. Array 활용멋사 부트캠프/자료구조 2025. 3. 19. 17:58
1. Arrays vs ArrayList 비교표 구분 Arrays (배열) ArrayList (동적 배열)크기 변경❌ 불가능 (고정 크기)✅ 가능 (자동 조정)데이터 타입기본형(Primitive) & 객체 가능객체(Reference type)만 가능속도✅ 빠름 (메모리 연속 할당)❌ 상대적으로 느림 (배열 복사 필요)제네릭 지원❌ 미지원✅ 지원 (ArrayList 등)데이터 추가/삭제❌ 불가능 (new로 새 배열 생성 필요)✅ add(), remove() 사용 가능인덱스로 접근✅ arr[i]✅ list.get(i)정렬 및 변환Arrays.sort() 지원Collections.sort() 사용구현 방식Java 기본 자료구조List 인터페이스의 구현체대표적인 메서드Arrays.sort(), Arrays...
-
01. 자료구조 요약 정리멋사 부트캠프/자료구조 2025. 3. 19. 17:48
1. 자료구조의 분류 체계 * 자료구조의 소요 시간표( Big-O 표기법) 성능 최적화의 핵심시간 복잡도: 효율적인 알고리즘을 사용해서 작업을 얼마나 빠르게 처리할 수 있는지. 예를 들어, 리스트 순차 탐색을 최적화하거나 불필요한 반복을 줄이는 방법.공간 복잡도: 메모리를 얼마나 효율적으로 사용할 것인지. 불필요한 데이터나 객체를 생성하지 않도록 관리하는 방법.코드의 가독성: 성능을 추구하더라도 코드가 지나치게 복잡해지면 나중에 다른 사람이 이해하기 어려워지니까, 항상 가독성과 유지보수성도 중요해. 2. 자료 구조 요약 정리1) Array (배열)동일한 타입의 데이터들을 저장하며, 고정된..
-
14. 파일 입출력멋사 부트캠프/Java 프로그래밍 2025. 3. 19. 17:03
1. 입출력 스트림 작업 방식Java IO (입출력, Stream 기반)소량의 데이터 처리에 적합동기 방식 (Blocking IO) → 데이터를 읽거나 쓸 때 해당 작업이 끝날 때까지 대기단일 처리 (Single-thread 기반)단방향 스트림 (InputStream / OutputStream)바이트 스트림과 문자 스트림을 사용하여 데이터 처리예제: FileInputStream, FileOutputStream, BufferedReader, BufferedWriterJava NIO (New IO, Channel 기반)대량의 데이터 처리에 적합비동기 방식 (Non-blocking IO) → 하나의 쓰레드가 여러 작업을 처리 가능다중 처리 (Multi-thread 기반 가능)양방향 스트림 (Channel을 이..
-
13. Constructor (생성자 참조 구문)멋사 부트캠프/Java 프로그래밍 2025. 3. 14. 17:49
1. Constructor 더 간결하게 객체를 생성하는 방법 "주어진 생성자를 호출하는 람다식" 을 간결하게 표현한 거야. (기능은 같음) 💡 일반적인 람다 표현식// 일반 람다식Supplier supplier = () -> new MyConstruct();// 생성자 참조 구문 // 초기화한 빈 껍데기 객체를 생성한다. Supplier supplier = MyConstruct::new; 2. 사용 예제import java.util.function.IntFunction;public class ArrayConstructorReference { public static void main(String[] args) { // 람다식: (size) -> new int[size] ..