일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 디자인교육
- 국비지원
- UXUI챌린지
- Java
- KDT
- 백준
- baekjoon
- 객체지향
- 환급챌린지
- 디자인챌린지
- 패스트캠퍼스
- 티스토리챌린지
- 오픈패스
- Spring
- 내일배움캠프
- 부트캠프
- 백엔드
- 디자인강의
- OPENPATH
- 백엔드 부트캠프
- 백엔드개발자
- 내일배움카드
- mysql
- 국비지원취업
- UXUIPrimary
- 국비지원교육
- Be
- UXUI기초정복
- 오픈챌린지
- 오블완
- Today
- Total
목록2025/03 (8)
군만두의 IT 공부 일지
목차 이번에는 SOLID에 대해서 책과는 다른 예시를 생각해보고 다이어그램을 그렸다.05. 객체 지향 설계 5원칙 - SOLIDSOLID는 로버트 C. 마틴이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스가 두문자어로 소개한 것이다.- SRP(Single Responsibility Principle): 단일 책임 원칙. 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.- OCP(Open Closed Principle): 개방 폐쇄 원칙. 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다.- LSP(Liskov Substitution Principle): 리스코프 치환 원칙. 서브 타입은 언제나 자신의 기반 타입으로 교체..
목차 이번에는 책에서 읽은 내용을 현재 진행 중인 MSA(Microservice Architecture) 기반 물류 시스템의 '주문 서비스'와 연결하여 정리했습니다.04. 자바가 확장한 객체 지향1. abstract 키워드 - 추상 메서드와 추상 클래스추상 메서드(Abstract Method): 선언부는 있는데 구현부가 없는 메서드추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스(Abstract Class)로 선언해야 한다.추상 메서드 없이도 추상 클래스를 선언할 수는 있다.- 추상 클래스는 인스턴스, 즉 객체를 만들 수 없다. 즉, new를 사용할 수 없다.- 추상 메서드는 하위 클래스에게 메서드의 구현을 강제한다. 오버라이딩 강제.- 추상 메서드를 포함하는 클래스는 반드시 추상 클래스여야..
목차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..
목차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, 절차적/구조적 프로그래밍, 기계어나 어셈블리어 (오른쪽으로 갈수록 모범 답안)..