일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- KDT
- 티스토리챌린지
- 디자인교육
- mysql
- 국비지원취업
- 디자인챌린지
- baekjoon
- 오블완
- UXUI기초정복
- UXUI챌린지
- 객체지향
- 국비지원교육
- 백엔드
- UXUIPrimary
- 오픈패스
- OPENPATH
- 내일배움캠프
- 국비지원
- Java
- 백엔드 부트캠프
- 디자인강의
- 백엔드개발자
- 부트캠프
- 환급챌린지
- Spring
- 패스트캠퍼스
- 내일배움카드
- 오픈챌린지
- 백준
- Today
- Total
목록전체 글 (153)
군만두의 IT 공부 일지
목차 이번에는 다양한 디자인 패턴 중 일부를 실제 프로젝트에 적용해 보기로 했다. 각 패턴의 기본 개념과 실습을 진행하려고 한다. 이전 게시글에서 설계한 쇼핑몰 서비스에 대해 디자인 패턴(어댑터, 전략, 템플릿 콜백)을 적용할 것이다.06. 스프링이 사랑한 디자인 패턴디자인 패턴:실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이 인정한 베스트 프랙티스를 정리한 것객체 지향의 특성 중 상속(extends), 인터페이스(interface/implements), 합성(객체를 속성으로 사용)만을 이용한다.스프링 프레임워크: 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크1. 어댑터 패턴(Adapter Pattern)어댑터..
목차 이번에는 책 198쪽에 있는 쇼핑몰 서비스에 대해서 도메인 모델 및 유스케이스에 대해 책임-주도 설계를 진행했다. 각자 같은 주제에 대해서 그려보고, 스터디원끼리 피드백을 하기로 했다.06. 객체 지도책임-주도 설계:시스템의 기능을 역할과 책임을 수행하는 객체들의 협력 관계로 바라보게 함으로써 두 가지 기본 재료인 유스케이스와 도메인 모델을 통합한다.사용자의 관점에서 시스템의 기능을 명시하고, 사용자와 설계자가 공유하는 안정적인 구조를 기반으로 기능을 책임으로 변환하는 체계적인 절차를 따라야 한다.쇼핑몰 서비스 설계전체 시나리오에 대해서 고민하니 너무 복잡해서 '고객의 주문'을 중심으로 생각했다.유스케이스유스케이스:사용자와 시스템 간의 상호작용을 보여주는 텍스트하나의 시나리오가 아니라 여러 시나리오..
목차21장. 자바 21에서 강화된 언어 및 라이브러리21.6 가상 스레드가상(virtual) 스레드: 처리량이 높은 동시 애플리케이션을 개발할 때 사용할 수 있는 경량(lightweight) 스레드가상 스레드 개요지금까지는 서버 애플리케이션에서 사용자 요청을 동시에 처리(요청별 스레드)하기 위해 스레드풀링을 사용했다.풀링: 제한된 개수로 스레드를 운용하는 것14장에서 스레드풀링을 학습했다. 스레드풀에서 초당 200개의 요청을 동시에 처리할 때 10개의 스레드를 사용했다면, 초당 2000개의 요청을 동시에 처리하려면 스레드풀에는 100개의 스레드가 풀링되어야 한다.자바 17까지: 운영체제가 제공하는 플랫폼(platform) 스레드를 래핑했기 때문에 스레드와 플랫폼 스레드가 1:1로 매핑된다.플랫폼 스레드는..
목차 이번에는 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 키워드를 인스턴스나 정적 메소드에 붙..