반응형 전체 글305 Java 기본 개념 Preface 자주 까먹고 헷갈리는 개념들만 보기 쉽게 따로 정리해둔다. - 자바는 클래스 다중 상속을 지원하지 않는다. → 인터페이스는 다중 상속이 가능하다. - 부모 클래스에 기본 생성자가 없고 매개 변수가 있는 생성자만 존재한다면 자식 생성자에서 반드시 부모 생성자 호출을 위해 super(매개값, ...)를 명시적으로 호출해야 한다. 1) super(매개값, ...)는 반드시 자식 생성자 첫 줄에 위치해야 한다. 2) 자식 클래스 내부에서 오버라이딩 된 부모 클래스의 메소드를 호출해야 한다면 명시적으로 super 키워드를 붙여 부모 메소드를 호출할 수 있다. - final 키워드 1) 클래스: 상속할 수 없는 클래스가 된다. 2) 필드: 상수가 된다. 3) 메서드: 오버라이딩할 수 없는 메서드가 된.. 2023. 9. 13. (Fin) 스프링 MVC를 이용한 게시판 구축 (X) Preface 이번 장은 스프링 MVC를 이용하여 간단한 게시판을 구축해보는 내용을 다루지만, 스프링 전문 서적이 아닌 탓인지 코드 및 개발 환경 구축에 관한 설명이 다소 부족하다고 느껴져 중간에 실습을 중단하고 한 번 훑어보는 식으로 넘어갔다. 무엇보다 MVC 실습은 얼마전 구매한 인프런 강의를 통해 진행하는 것이 훨씬 효율적일 것 같다는 생각이 들었다. 이번 책의 마지막 장은 람다에 관한 내용인데 이미 '이것이 자바다' 책에서 람다식을 다뤘으므로 따로 글을 업로드하기보단 복습하는 느낌으로 읽어보고 마무리할 듯하다. 또, 책을 마친 뒤 JSP 관련 글을 전체적으로 복습한 후 인프런 강의를 시작할 계획이다. - 스프링 MVC에선 @Controller 어노테이션이 붙은 클래스 안에 @ReauestMappi.. 2023. 9. 12. 스프링 삼각형과 설정 정보 Preface 이번 장에선 스프링의 3대 프로그래밍 모델에 대해 공부했다. 내용 자체가 복잡하고 어려운 편은 아니라 조금만 생각하면 쉽게 이해하고 넘어갈 수 있었다. SOLID와 디자인패턴 부분을 공부할 땐 의존성이 도대체 무엇을 의미하는 것인지, 의존성을 주입한다는 것이 무슨 뜻인지 이해할 수 없었지만, 이번 장을 공부하며 의존성이란 단어에 대해 조금은 익숙해진 것 같다. 또, 지금껏 자바를 공부하며 기본서에 있는 코드들을 자주 접하고 직접 쳐보기도 했었는데, 지금 보니 나는 이미 의존성을 주입하는 다양한 방식들을 모두 경험해봤었다. 아는 만큼 보인다는 말이 괜히 있는게 아닌가보다. 이번 장과 더불어 SOLID, 디자인패턴 장은 두고두고 자주 읽어볼 생각이다. 1. IoC/DI - IoC(Inversi.. 2023. 9. 11. Mac STS Spring MVC Project 생성 오류 Preface 실습을 위해 STS 4를 설치했지만, 프로젝트 생성란에 Spring MVC Project가 존재하지 않는 문제가 발생했다. 구글링을 하던 도중 Eclipse Marketplace에서 STS 3 Add-On을 설치하는 방법을 찾아 따라해봤지만, 설치 과정에서 오류가 발생했다. 그래서 애초에 STS 4를 제거하고 STS 3 버전을 다운로드받는 방법을 선택했다. 1. STS 3 다운로드: https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3 Spring Tool Suite 3 the distribution build for the Spring Tool Suite and the Groovy/Grails Too.. 2023. 9. 6. 스프링이 사랑한 디자인 패턴 Preface 이번 장에선 디자인 패턴의 8가지 종류를 공부했다. 개념 자체는 어렵지 않지만, 다양한 패턴을 실제 코드에 자연스럽게 녹아들게 하기까진 많은 시간과 노력이 필요할 것 같다. 추후 시간이 될 때 디자인 패턴 전문 서적을 구입해 읽어볼 생각이다. 자바 카테고리에 있는 책과 동일한 책이지만, 후반부에선 스프링에 대해 다뤄서 스프링 카테고리에 글을 업로드한다. - 디자인 패턴: 표준 설계 패턴 → OOP의 특성 중 상속(extends), 인터페이스(interface), 합성(객체를 속성으로 사용: 객체 참조 변수를 가짐)을 이용한다. - 디자인 패턴의 종류 1. 생성 패턴 1) 싱글톤(Singleton) 2) 팩토리 메서드(Factory Method) 3) 추상 팩토리(Abstract Factor.. 2023. 9. 5. 객체 지향 설계 5원칙 - SOLID Preface 이번 장에선 객체 지향 설계 5원칙인 SOLID의 정의를 공부했다. 다소 추상적인 개념이던 객체 지향의 4대 특성을 SOLID와 결합해서 생각하니 쉽게 이해할 수 있었다. 책이 설명을 잘 하는 것인지, 단순히 여러 번 봐서 익숙해진 탓인지, 객체 지향의 개념과 장점 등 그동안 애매하게만 숙지하고 있던 내용들이 이상하게 머릿속에 쏙쏙 잘 들어온다. 또, 그동안 내가 자바로 작성하던 코드들이 SOLID 원칙, 특히 SRP 따위는 개나 줘버린 코드였던 것을 알 수 있었다. 단순히 클래스 파일과 메서드를 여러 개 생성하는 것이 귀찮아 특정 조건에 따라 분기하는 조건문을 사용하던 습관을 버려야 할 것 같다. - SOLID: 객체 지향 설계 5원칙의 앞 머리 알파벳을 딴 단어 1) SRP(Single.. 2023. 9. 4. 자바가 확장한 객체 지향 Preface 이번 장에선 abstract와, final 키워드, 인터페이스에 대해 다뤘다. 대부분 '이것이 자바다' 책에서 다뤘던 내용이라 어려운 내용은 없었다. 더욱 자세한 정보는 이자바 카테고리에서 확인할 수 있다. - 추상 메서드: 선언부는 있지만 구현부가 없는 메서드 → 추상 메서드는 하위 클래스에게 오버라이딩을 강제한다. - 추상 클래스: 인스턴스(객체)를 생성할 수 없는 클래스 → 추상 클래스를 상속한 하위 클래스에선 추상 메서드를 오버라이딩해야 한다. - '클래스명( )'도 메서드이다. → 객체 생성자 메서드라 하고, 줄여서 생성자라고 부른다. - 자바는 인자가 없는 기본 생성자를 자동으로 생성해준다. → 인자가 있는 생성자를 하나라도 생성하면 자바는 기본 생성자를 만들어 주지 않는다. -.. 2023. 9. 4. 자바와 객체 지향 Preface 이번 장에선 객체 지향의 4대 특성을 알아봤다. '이것이 자바다' 책을 공부하며 이미 한 번 학습했던 내용이지만, 중간중간 기억이 잘 나지 않는 부분도 있었다. 아무래도 자바의 상속, 인터페이스, 접근제한자와 관련된 내용은 복습이 필요할 것 같다. 그래도 이것저것 공부한 개념이 많아져서 그런지 처음 객체 지향을 공부했을 때 보단 훨씬 이해가 잘 되고 쉽게 느껴졌다. 특히 추상화와 다형성의 개념을 코드를 통해 이해할 수 있게 된 것 같다. - 객체 지향은 인간 지향이다. → 객체 지향은 직관적이다. - 객체 지향의 4대 특성 1) 캡슐화(Encapsulation): 정보 은닉 2) 상속(Inheritance, Extends): 재사용 3) 추상화(Abstraction): 모델링 4) 다형성(.. 2023. 8. 31. CBD vs OOP Preface CBD와 OOP의 차이점을 정확히 이해하기 위해 두 개념에 대해 간략히 정리한다. 또, 두 개념의 차이점을 조금이나마 쉽게 이해하고자 컴포넌트와 객체에 대해서도 업로드한다. 1. CBD와 OOP의 차이 - CBD (Component-Based Development, 구성 요소 기반 개발) CBD는 소프트웨어 개발 방법론 중 하나로,소프트웨어를 독립적인 구성 요소(component)로 분리하고 이러한 구성 요소들을 조합하여 전체 소프트웨어 시스템을 구축하는 개발 방법을 의미한다. 이 방법론은 시스템을 작은 모듈로 분해하고 이 모듈들을 재사용 가능한 구성 요소로 간주하여 개발한다. 이로써 유지 보수성과 재사용성이 향상되며 대규모 프로젝트의 복잡성을 줄이는 데 도움을 준다. CBD는 주로 웹 애.. 2023. 8. 30. 자바와 절차적/구조적 프로그래밍 Preface 1장에선 딱히 정리할만한 부분이 없어서 2장부터 정리를 시작한다. 작가는 코드를 STS(Spring Tool Suite)로 실행해 볼 것을 권장했지만, 대부분 매우 짧고 간단한 코드라 이미 설치되어 있는 이클립스를 사용했다. 이번 장 까지는 절차적/구조적 프로그래밍에 대한 간단한 설명, 기본적인 메모리 구조 사용 방법 등 익숙한 부분을 다뤄서 쉽게 읽고 넘어갈 수 있었다. 다만, CBD와 OOP의 차이점에 대해선 아직 정확히 구분할 수가 없다. 두 방식에 대해선 조금 더 자세히 공부할 필요가 있을 것 같다. - SOA(Service-Oriented Architecture): 서비스 지향 아키텍처 → 애플리케이션을 독립적인 서비스 단위로 분리하여 구축하고 통합하는 접근 방식 - CBD(Com.. 2023. 8. 30. 자바 객체 지향의 원리와 이해 출처 자바 객체지향의 원리와 이해 카테고리에 있는 모든 글들은 김종민 교수님의 『스프링 입문을 위한 자바 객체 지향의 원리와 이해』 (위키북스)에서 정리·요약 및 간접인용한 내용임을 밝힙니다. 2023. 8. 30. Kakao Map API & Sample 카카오에서 제공하는 지도 API 사용 방법과 다양한 예제를 제공하는 사이트이다. 측면 사이드바에서 Sample 카테고리에 들어가 다양한 실습을 해볼 수도 있다. 링크: https://apis.map.kakao.com/ 2023. 7. 14. 카카오 책 검색 REST API를 사용한 웹사이트 제작 Preface 정보처리기능사 실기 시험 신청까지 시간이 남아 카카오의 검색 API를 사용해 간단한 책 검색 웹사이트를 제작해봤다. 카카오 API를 사용하는 방법은 조코딩님의 유튜브 강의를 참고했고, 부가적인 기능들은 생각날 때마다 하나하나 추가해가며 만들었다. 사실 모든 코드를 혼자 작성했다기보단, GPT에게 질문을 하며 필요한 부분들을 수정하는 방식으로 진행했다. CSS를 자주 사용해보지 않아서 그런지 중요 기능들을 수행하는 코드보다 CSS 코드를 작성하는 데 시간이 더 걸렸다. 또, 제작한 페이지를 깃허브에서 호스팅했지만, 인증키 노출 문제로 인해 현재는 중단한 상태이다. 깃허브의 action secrets를 사용하면 인증키를 숨긴 상태로 호스팅을 할 수 있을 것 같기도 한데, 아직 해결 방법을 찾지.. 2023. 7. 13. Chat-GPT 질의응답 모음 Preface 코드를 작성하며 중간중간 GPT에게 물어봤던 자바스크립트 관련 질문을 한 곳에 모아두고자 글을 업로드한다. - var, let, const의 차이점 1) `var`: `var` 키워드는 ES5 이전에 사용되던 변수 선언 방식입니다. `var`로 선언된 변수는 함수 스코프를 갖습니다. 함수 내에서 선언된 `var` 변수는 해당 함수 내에서만 접근할 수 있으며, 함수 외부에서는 접근할 수 없습니다. 또한, `var` 변수는 재선언 및 재할당이 가능합니다. 이러한 특징으로 인해 `var` 변수는 호이스팅(hoisting) 현상이 발생할 수 있습니다. 2) `let`: `let` 키워드는 ES6에서 도입된 블록 스코프를 갖는 변수 선언 방식입니다. `let`으로 선언된 변수는 해당 블록(중괄호 `.. 2023. 7. 8. 이전 1 2 3 4 5 ··· 22 다음