본문 바로가기

분류 전체보기

(30)
패스트캠퍼스 환급챌린지 29일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.Ch 1. 데이터 베이스 개념 및 특징 1. 데이터(Data)와 정보(Information): 그 미묘한 차이 가장 먼저 짚고 넘어가야 할 개념은 데이터와 정보의 차이입니다.데이터는 단순히 현실 세계를 관찰하거나 측정하여 수집한 사실이나 값 그 자체를 말합니다. 예를 들어, 'A 상품은 100원', '오늘의 기온은 20도'와 같은 순수한 수치나 사실들이 데이터에 해당합니다. 개별 데이터 자체만으로는 그 의미가 중요하게 다가오지 않는 객관적 사실의 존재적 특성을 가집니다.정보는 데이터를 어떤 방식으로 처리하여 의미를 가지는 단위로 만든 것입니다. 즉, 의사 결정에 유용하게 활용할 수 있는 결과물을 의미합니다. 데이터를 정보로 만드는 과정을 ..
패스트캠퍼스 환급챌린지 28일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.Ch11. 객체지향 고급 프로그래밍 - 설계 원칙 적용하기 자바 객체 지향 설계의 심화: JDBC 결합도 문제와 SOLID 원칙 적용하기 데이터 영속성 관리를 위해 JDBC를 사용하여 애플리케이션 데이터를 데이터베이스에 저장하는 방법을 알아보았습니다. 이제 한 단계 더 나아가, 이 과정에서 발생할 수 있는 설계상의 문제점을 진단하고, 이를 SOLID 설계 원칙을 적용하여 어떻게 개선할 수 있는지 함께 고민해보고자 합니다. 특히, ShoppingContext와 JDBC 관련 코드 간의 높은 결합도를 해결하는 과정에 집중하여, 더욱 유연하고 확장 가능한 설계를 만들어나가겠습니다.1. JDBC 활용의 그림자: 높은 결합도 문제 우리가 이전에 구현..
패스트캠퍼스 환급챌린지 27일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.Ch 11. 객체지향 고급 프로그래밍 - 데이터영속성관리 자바에서 데이터 영속성 다루기: 휘발성 메모리를 넘어 영원한 저장소로 아무리 잘 만든 프로그램도 한 가지 근본적인 문제에 부딪히곤 합니다. 바로 "프로그램이 종료되면 데이터가 모두 사라진다"는 것이죠. 이는 컴퓨터의 주 기억 장치인 메모리(RAM)의 특성 때문입니다. 전원이 꺼지면 메모리의 데이터는 사라지게 됩니다.이번 포스팅에서는 이 문제를 해결하고 데이터를 영속적으로(persistently) 저장하는 방법에 대해 이야기하고자 합니다. 특히 자바에서 관계형 데이터베이스와 연동하여 데이터를 유지하는 표준 방법인 JDBC(Java Database Connectivity)를 중심으로 자세..
패스트캠퍼스 환급챌린지 26일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.CH 11. 객체지향 고급 프로그래밍 - 향상된 자바 API 활용 오늘은 좀 더 세련되고 유연한 코드를 작성할 수 있게 돕는 고급 기법들을 알아보려고 합니다. 바로 람다 표현식(Lambda Expression)과 Enum(열거 타입)의 활용법입니다. 이 두 가지는 자바의 강력함을 한층 더 끌어올려, 코드를 간결하게 만들고 가독성을 높이며, 궁극적으로는 개발자의 생산성 향상에 기여합니다.1. 람다 표현식: 익명 클래스의 간결한 진화 자바 8부터 도입된 람다 표현식은 함수형 프로그래밍 스타일을 자바에 적용할 수 있게 해준 혁신적인 기능입니다. 이는 기본적으로 익명 함수(Anonymous Function)를 표현하는 간결한 문법이며, 보통 하나의..
패스트캠퍼스 환급챌린지 25일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. Ch10. 상태 관리와 예외 처리 자바에서 "상태"를 다루는 지혜: 예측 가능한 소프트웨어를 위한 예외 처리와 정합성 "상태 관리"와 이를 통해 "프로그램의 정합성(Consistency)"을 확보하는 방법에 대해 이야기해보려 합니다. 특히, 예상치 못한 상황을 우아하게 처리하는 예외 처리(Exception Handling) 기법에 깊이 초점을 맞추어, 예측 가능하고 안정적인 소프트웨어를 만드는 방법을 알아보겠습니다.1. 프로그램의 "상태"란 무엇인가? 그리고 왜 중요한가? 정보 기술 및 컴퓨터 과학에서, 시스템이 상태를 가졌다(stateful)는 것은 이전 이벤트나 사용자 상호작용을 기억하도록 설계되었다는 의미입니다. 이렇게 기억된 정..
패스트캠퍼스 환급챌린지 24일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. Ch 9. 디자인 패턴과 객체지향 설계 원칙 잘 만들어진 소프트웨어는 단순히 코드를 나열하는 것을 넘어, 체계적인 설계 원칙과 재사용 가능한 해결책을 바탕으로 합니다. 이번 글에서는 디자인 패턴, SOLID 설계 원칙, 그리고 프레임워크의 개념을 통해 유연하고 견고한 자바 애플리케이션을 구축하는 지혜를 나누어 드리고자 합니다.1. 디자인 패턴: 검증된 설계 노하우 소프트웨어 공학에서 디자인 패턴(Design Pattern)은 컴퓨터 프로그램의 특정 측면(기능)을 코드를 어떻게 작성할지에 대한 관점에서 상대적으로 작고 잘 정의된 방식으로 기술합니다. 쉽게 말해, 소프트웨어 개발 과정에서 반복적으로 발생하는 문제들에 대한 모범적인 해결책을..
패스트캠퍼스 환급챌린지 23일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. Ch 8. 쓰임새(Use Case)와 구조 설계 자바 객체 지향 설계를 통한 효율적인 시스템 구축: Use Case와 객체 협업 이번에는 Use Case(사용 사례)를 중심으로 시스템의 기능을 정의하고, 객체들이 어떻게 서로 협업(Collaboration)하며 역할을 분담하는지, 그리고 이 과정에서 위임(Delegation), 결합도(Coupling), 응집도(Cohesion)와 같은 중요한 설계 원칙들이 어떻게 적용되는지 자세히 살펴보겠습니다.1. Use Case와 시나리오: 사용자 관점에서 기능 정의하기 소프트웨어 개발에서 Use Case는 소프트웨어 시스템의 사용 시나리오를 의미합니다. 이는 사용자가 시스템을 통해 달성하고자 하는..
패스트캠퍼스 환급챌린지 22일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. Ch 7. 상속과 다형성자바 객체 지향 프로그래밍의 꽃: 상속과 다형성으로 견고한 시스템 만들기 자바 객체 지향 프로그래밍(OOP)의 진정한 강력함을 보여주는 상속(Inheritance)과 다형성(Polymorphism)에 대해 자세히 알아보겠습니다. 이 두 가지 개념은 코드의 재사용성을 극대화하고 유연하며 확장 가능한 시스템을 구축하는 데 필수적입니다.1. 상속(Inheritance): 코드 재사용의 기본상속은 객체 지향 프로그래밍에서 한 객체 또는 클래스가 다른 객체 또는 클래스를 기반으로 하여 유사한 구현을 유지하는 메커니즘입니다. 이는 부모-자식 관계를 형성하여 코드를 재사용하고 확장하는 데 도움을 줍니다. 자바에서는 extends..
패스트캠퍼스 환급챌린지 21일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.Ch 6. 인터페이스와 API 1. 인터페이스란 무엇인가? 컴퓨팅 분야에서 인터페이스는 두 개 이상의 분리된 컴퓨터 시스템 구성 요소가 정보를 교환하는 공유 경계를 의미합니다. 이는 하드웨어, 소프트웨어, 사용자 인터페이스 등 다양한 수준에서 존재합니다.하드웨어 인터페이스: 다양한 버스, 저장 장치, 기타 I/O 장치와 같은 많은 구성 요소에 존재합니다. 소프트웨어 인터페이스: 운영 체제가 하드웨어와 상호 작용하거나, 응용 프로그램 내에서 객체들이 메서드를 통해 상호 작용할 필요가 있을 때 사용됩니다. 사용자 인터페이스 (UI): 컴퓨터와 인간 사이의 상호 작용 지점으로, 그래픽, 소리, 위치, 움직임 등 다양한 상호 작용 방식을 포함하며 ..
패스트캠퍼스 환급챌린지 20일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. Ch 5. 자료 구조와 자바 Collection 1. 컬렉션(Collections)이란? 컬렉션은 여러 요소를 하나의 단위로 묶는 객체입니다. 데이터를 저장하고, 검색하고, 조작하고, 전달하는 데 사용됩니다. 포커 핸드의 카드 묶음, 메일 폴더의 편지 묶음, 전화번호부 등이 컬렉션의 자연스러운 예시입니다. 2. 컬렉션 프레임워크(Collections Framework)란? 컬렉션 프레임워크는 컬렉션을 표현하고 조작하기 위한 통합된 아키텍처입니다. 모든 컬렉션 프레임워크는 다음 세 가지 핵심 구성 요소를 포함합니다. 인터페이스 (Interfaces): 컬렉션의 추상적인 데이터 타입을 정의합니다. 구현체 (Implementations):..