일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 국비지원
- 디자인교육
- 오픈패스
- 백엔드
- 디자인챌린지
- UXUI기초정복
- 객체지향
- 내일배움캠프
- 국비지원교육
- 오블완
- 백준
- 디자인강의
- Spring
- Be
- 패스트캠퍼스
- 백엔드 부트캠프
- UXUIPrimary
- baekjoon
- Java
- 부트캠프
- 환급챌린지
- KDT
- 백엔드개발자
- 오픈챌린지
- mysql
- OPENPATH
- 내일배움카드
- UXUI챌린지
- 티스토리챌린지
- 국비지원취업
- Today
- Total
목록프로그래밍 (44)
군만두의 IT 공부 일지
목차03. 자바와 객체지향1. 객체 지향은 인간 지향이다기존의 구조적 프로그래밍 언어에서 중요한 것은 '함수'였다.객체 지향은 주변에서 사물을 인지하는 방식대로 프로그래밍하는 것에서 출발한다.객체 지향의 큰 그림- 세상에 존재하는 모든 것은 사물, 즉 객체(object)다.- 각각의 사물은 고유하다.- 사물의 속성을 갖는다.- 사물은 행위를 한다.2. 객체 지향의 4대 특성 - 캡! 상추다캡 - 캡슐화(Encapsulation): 정보 은닉(information hiding)상 - 상속(Inheritance): 재사용추 - 추상화(Abstraction): 모델링다 - 다형성(Polymorphism): 사용 편의3. 클래스 vs. 객체 = 붕어빵틀 vs. 붕어빵 ???클래스 객체명 = new 클래스();..

목차14장. 멀티 스레드14.6 스레드 동기화멀티 스레드는 하나의 객체를 공유해서 작업할 수 있다.하지만 다른 스레드에 의해 객체 내부 데이터가 쉽게 변경될 수 있기 때문에 의도했던 것과는 다른 결과가 나올 수 있다.위 사진에서 UserThread에 저장된 데이터가 날아간다.스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없도록 스레드 작업이 끝날 때까지 객체에 잠금을 건다.객체 내부에 동기화(synchronized) 메소드와 블록이 여러 개 있다면 스레드가 이 중 하나를 실행할 때, 다른 스레드는 일반 메소드는 실행 가능하지만 해당 메소드와 다른 동기화 메소드 및 블록을 실행할 수 없다.동기화 메소드 및 블록 선언동기화 메소드를 선언하려면 synchronized 키워드를 인스턴스나 정적 메소드에 붙..
목차02. 자바와 절차적/구조적 프로그래밍자바: 객체지향 언어이면서 근본적으로는 프로그래밍 언어1. 자바 프로그램의 개발과 구동자바 개발 환경을 이해하려면 JVM(Java Virtual Machine)의 존재와 역할을 아는 것이 필수다. 현실 세계가상 세계(자바 월드)소프트웨어 개발 도구JDK - 자바 개발 도구JVM용 소프트웨어 개발 도구운영체제JRE - 자바 실행 환경JVM용 OS하드웨어 - 물리적 컴퓨터JVM - 자바 가상 기계가상의 컴퓨터▲ 현실 세계 vs. 가상 세계JDK(Java Development Kit): 자바 소스 컴파일러인 javac.exe 포함JRE(Java Runtime Environment): 자바 프로그램 실행기인 java.exe 포함자바에서 위와 같은 구조를 택한 이유는 기존..
목차13장. 제네릭13.1 제네릭이란?Box 클래스에 넣을 내용물을 content 필드라고 선언하려고 할 때, 타입을 무엇으로 해야 할까?public class Box { public Object content;}Box box = new Box();box.content = 모든 객체;Box는 다양한 내용물을 저장해야 하므로 특정 클래스 타입으로 선언할 수 없기 때문에, Object 타입으로 선언한다. 모든 객체는 부모 타입인 Object로 자동 타입 변환이 되므로, content 필드에는 어떤 객체든 대입이 가능하다.Object 타입: 모든 클래스의 최상위 부모 클래스문제: Box 안의 내용물을 얻을 때, 어떤 객체가 대입되어 있는지 확실하지 않다. instanceof 연산자로 모든 종류의 클래스를..

목차 제목: 스프링 입문을 위한 자바 객체지향의 원리와 이해 저자: 김종민 출판사: 위키북스 가격: 25,000원 자바에서 스프링으로 나아가기 위한 연결 고리 '객체지향의 사실과 오해' 책과 동일한 방식으로 스터디를 진행하려고 한다. 블로그에 책을 학습한 내용을 정리하고, 깃허브 이슈에는 책을 읽으며 이야기 나눌 주제나 같이 보면 좋을 자료를 공유한다.01. 사람을 사랑한 기술1. 신기술은 이전 기술의 어깨를 딛고Q. 스프링은 과거로부터 현재까지의 프로그래밍 발전사에서 그 정점에 있다고 해도 과언이 아니다. 스프링을 이해하려면 이전의 어떤 기술들을 이해하고 있어야 할까?A. SOA, CBD, OOP, 절차적/구조적 프로그래밍, 기계어나 어셈블리어 (오른쪽으로 갈수록 모범 답안)..
목차9장. 중첩 선언과 익명 객체9.1 중첩 클래스중첩 클래스(Nested Class): 클래스 내부에 선언한 클래스장점: 클래스의 멤버를 쉽게 사용할 수 있고, 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다.중첩 클래스는 선언하는 위치에 따라 두 가지로 분류된다.멤버 클래스: 클래스의 멤버로서 선언되는 중첩 클래스로컬 클래스: 메소드 내부에서 선언되는 중첩 클래스선언 위치에 따른 분류선언 위치객체 생성 조건멤버 클래스인스턴스 멤버 클래스class A { class B { ... }}A 객체를 생성하야만B 객체를 생성할 수 있음정적 멤버 클래스class A { static class B { ... }}A 객체를 생성하지 않아도B 객체를 생성할 수 있음로컬 클래스class A..
목차 드디어 이 책을 마무리하게 되었다. 여기서는 테스트를 SOLID 법칙에 따라 어떻게 설계하는지 설명한다. 책을 읽으면서 SRP에서는 실제 프로젝트에서 팀원이 튜터님한테 Repository 의존성을 많이 주입받고 있다고 지적받은 상황이 떠올랐다. 이런 부분을 유의해야 할 것 같다.16 . 테스트와 설계테스트와 소프트웨어 설계가 추구하는 가치에 교집합이 있다. 좋은 설계는 시스템이 모듈로 분해되고 각 모듈이 독립적으로 개발될 수 있게 하는 것을 추구한다. 더 나아가 시스템이 확장될 수 있는 것을 추구한다. 좋은 설계를 갖춘 코드는 대부분 테스트하기도 쉽다.테스트와 좋은 설계1. 테스트하기 어려운 코드는 좋은 설계 원칙을 적용함으로써 테스트하기 쉽게 만들 수 있다.2. 어떤 방식이 좋은 설계인지 헷갈린..

목차 제목: 객체지향의 사실과 오해 저자: 조영호 출판사: 위키북스 가격: 20,000원 역할, 책임, 협력 관점에서 본 객체지향 지금까지 진행한 방식과 동일하게 블로그에 객체지향 책을 학습한 내용을 정리하려고 한다. 중요한 부분 위주로 정리했는데, 예시를 들어 설명하는 부분이 더 많았기 때문에 정리하기가 쉽지 않았다. 깃허브 이슈에는 책을 읽으며 궁금한 점을 작성 후 의논할 것인데, 이번 주차에 대한 궁금한 점은 아직 없었다.01. 협력하는 객체들의 공동체보편적으로 "객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임"이고, "객체지향 소프트웨어는 실세계의 투영"이며, "객체란 현실 세계에 존재하는 사물에 대한 추상화"라고 설명한다. "실세계의 모방"이라는 ..