일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백엔드개발자
- 국비지원취업
- 디자인강의
- Be
- 국비지원
- UXUI기초정복
- 국비지원교육
- Java
- 백엔드
- 오픈패스
- 객체지향
- Spring
- 환급챌린지
- 내일배움캠프
- 백준
- 백엔드 부트캠프
- KDT
- UXUIPrimary
- OPENPATH
- mysql
- baekjoon
- 오블완
- 부트캠프
- 디자인교육
- UXUI챌린지
- 패스트캠퍼스
- 디자인챌린지
- 오픈챌린지
- 티스토리챌린지
- 내일배움카드
- Today
- Total
목록프로그래밍/Java (10)
군만두의 IT 공부 일지
목차 제목: 스프링 마스터 저자: 로렌티우 스필카, 정성권 번역 출판사: 길벗 가격: 33,000원 기초부터 탄탄하게 배워서 바로 쓰는 스프링 입문 '이것이 자바다' 스터디가 끝나고, 이번에는 스프링 스터디를 진행하려고 한다. 해당 용어에 대해 부족한 점이 많은 것 같아, 여러 책들을 분석한 결과 적절한 구성의 책을 선정하였다.2장. 스프링 컨텍스트: 빈 정의이 장에서 다룰 내용- 스프링 컨텍스트의 필요성 이해하기- 스프링 컨텍스트에 새로운 객체 인스턴스 추가하기컨텍스트: 프레임워크가 관리할 모든 객체 인스턴스를 추가하는 앱의 메모리 공간스프링이 객체를 볼 수 있게 하려면 컨텍스트에 객체를 추가해야 한다.객체 인스턴스를 빈(Bean)이라고 한다.2.1 메이븐 프로젝트 생성메이븐..
목차21장. 자바 21에서 강화된 언어 및 라이브러리21.6 가상 스레드가상(virtual) 스레드: 처리량이 높은 동시 애플리케이션을 개발할 때 사용할 수 있는 경량(lightweight) 스레드가상 스레드 개요지금까지는 서버 애플리케이션에서 사용자 요청을 동시에 처리(요청별 스레드)하기 위해 스레드풀링을 사용했다.풀링: 제한된 개수로 스레드를 운용하는 것14장에서 스레드풀링을 학습했다. 스레드풀에서 초당 200개의 요청을 동시에 처리할 때 10개의 스레드를 사용했다면, 초당 2000개의 요청을 동시에 처리하려면 스레드풀에는 100개의 스레드가 풀링되어야 한다.자바 17까지: 운영체제가 제공하는 플랫폼(platform) 스레드를 래핑했기 때문에 스레드와 플랫폼 스레드가 1:1로 매핑된다.플랫폼 스레드는..
목차17장. 스트림 요소 처리17.1 스트림이란?컬렉션 및 배열에 저장된 요소를 반복 처리하기 위해서는 for 문을 이용하거나 Iterator(반복자)를 이용했음.List list = ...;for(int i=0; iSet set = ...;Iterator iterator = set.iterator();while(iterator.hasNext()) { String item = iterator.next(); // 요소 처리}Java 8부터는 컬렉션 및 배열의 요소를 반복 처리하기 위해 스트림(Stream)을 사용할 수 있다.Stream stream = list.stream();Stream.forEach( item -> //item 처리 );List 컬렉션의 stream() 메소드로 Stre..

목차14장. 멀티 스레드14.6 스레드 동기화멀티 스레드는 하나의 객체를 공유해서 작업할 수 있다.하지만 다른 스레드에 의해 객체 내부 데이터가 쉽게 변경될 수 있기 때문에 의도했던 것과는 다른 결과가 나올 수 있다.위 사진에서 UserThread에 저장된 데이터가 날아간다.스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없도록 스레드 작업이 끝날 때까지 객체에 잠금을 건다.객체 내부에 동기화(synchronized) 메소드와 블록이 여러 개 있다면 스레드가 이 중 하나를 실행할 때, 다른 스레드는 일반 메소드는 실행 가능하지만 해당 메소드와 다른 동기화 메소드 및 블록을 실행할 수 없다.동기화 메소드 및 블록 선언동기화 메소드를 선언하려면 synchronized 키워드를 인스턴스나 정적 메소드에 붙..
목차13장. 제네릭13.1 제네릭이란?Box 클래스에 넣을 내용물을 content 필드라고 선언하려고 할 때, 타입을 무엇으로 해야 할까?public class Box { public Object content;}Box box = new Box();box.content = 모든 객체;Box는 다양한 내용물을 저장해야 하므로 특정 클래스 타입으로 선언할 수 없기 때문에, Object 타입으로 선언한다. 모든 객체는 부모 타입인 Object로 자동 타입 변환이 되므로, content 필드에는 어떤 객체든 대입이 가능하다.Object 타입: 모든 클래스의 최상위 부모 클래스문제: Box 안의 내용물을 얻을 때, 어떤 객체가 대입되어 있는지 확실하지 않다. instanceof 연산자로 모든 종류의 클래스를..
목차9장. 중첩 선언과 익명 객체9.1 중첩 클래스중첩 클래스(Nested Class): 클래스 내부에 선언한 클래스장점: 클래스의 멤버를 쉽게 사용할 수 있고, 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다.중첩 클래스는 선언하는 위치에 따라 두 가지로 분류된다.멤버 클래스: 클래스의 멤버로서 선언되는 중첩 클래스로컬 클래스: 메소드 내부에서 선언되는 중첩 클래스선언 위치에 따른 분류선언 위치객체 생성 조건멤버 클래스인스턴스 멤버 클래스class A { class B { ... }}A 객체를 생성하야만B 객체를 생성할 수 있음정적 멤버 클래스class A { static class B { ... }}A 객체를 생성하지 않아도B 객체를 생성할 수 있음로컬 클래스class A..
목차 오늘은 8장 인터페이스에 대해서 정리하려고 합니다. 상수에 필드에 대해서 몰랐던 내용을 알게 된 것 같습니다.8장. 인터페이스8.1 인터페이스의 역할인터페이스(interface): 두 장치를 연결하는 접속기인터페이스는 두 객체를 연결하는 역할을 함.상속보다 인터페이스를 이용해서 다형성을 구현하는 경우가 많음.8.2 인터페이스와 구현 클래스 선언인터페이스는 '*.java' 형태의 소스 파일로 작성되고 '*.class' 형태로 컴파일된다. 물리적 형태는 클래스와 동일하지만, 소스를 작성할 때 선언하는 방법과 구성 멤버가 클래스와 다르다.인터페이스 선언class 키워드 대신 interface 키워드를 사용함.접근 제한자는 dafault, public를 붙일 수 있음.중괄호 안에는 상수 필드, 추상 메소드..
목차 이번에는 7장 상속에 대해서 정리하려고 합니다. 상속은 프로젝트에서 다양하게 사용되기 때문에 확실히 알아두는 게 좋을 것 같습니다.7장. 상속7.7 타입 변환타입 변환: 타입을 다른 타입으로 변환하는 것클래스의 타입 변환은 상속 관계에 있는 클래스 사이에서 발생함.자동 타입 변환자동 타입 변환(Promotion): 자동적으로 타입 변환이 일어나는 것부모 타입으로 자동 타입 변환된 이후에는 부모 클래스에 선언된 필드와 메소드만 접근이 가능함.변수는 자식 객체를 참조하지만, 변수로 접근 가능한 멤버는 부모 클래스 멤버로 한정됨.자식 클래스에서 오버라이딩된 메소드가 있다면, 부모 메소드 대신 오버라이딩된 메소드가 호출됨.// 자동 타입 변환 조건부모타입 변수 = 자식타입객체;Cat cat = new Ca..