전체 글

초보 개발자의 공부 블로그입니다.
·Language/Java
객체지향의 4대 특징을 정리하면서 추상화를 설명할 때 인터페이스를 예로 들어 설명을 했다. 공통적인 속성과 기능을 정의하기 위해 인터페이스를 사용한다라고 설명했다. 그럼 내가 알고 있는 인터페이스와의 개념과 사용용도를 생각해 보자. 인터페이스는 기술명세서 또는 다양한 구현체가 존재할 수 환경에서의 기초가 되는 틀정도 개념으로 사용하였다. 예를 들어 설명하자면 스프링 프로젝트에서 비즈니스 로직을 구현하는 Service단에서 기능 구현 전 인터페이스를 생성하여 기능의 명세만 먼저 작성하는 행위, DB가 정해지기 전 작업을 진행하기 위해 기준 Repository를 인터페이스 선언하여 구현하는 행위 등의 용도로 사용하였다. 이제 인터페이스의 특징과 기능을 정리해 보고 그것이 객체지향 관점에서 어떤 역할을 하는지..
[넘블-딥다이브의 방문자 수 트래킹 서비스 구축하기] 참여 후 작성한 일지 후기보단 일지에 가깝다. 이 프로젝트는 기능의 CRUD 보단 특정 한 기능에서 발생될 수 있는 이슈를 고민해 보며 해결해 가는 게 목적이다. 기본적으로 이 프로젝트는 https://hits.seeyoufarm.com/ 사이트를 클론코딩하라고 한다. (클론코딩보단 기능 벤치마킹 프로젝트에 가깝다.) 일단 기능 구현을 위해 요구사항을 먼저 분석해야 됨으로 hits.seeyoufarm 개발자분이 남기신 블로그글을 읽게 되었다. Github Repository 방문수를 트래킹 하는 방법Github READEME에 badge 달고, 일별 트래킹을 해보자.medium.com 여기서 요구사항에 대한 중요포인트를 알 수 있었다. 사실 방문자 수..
·Language/Java
객체지향은 4가지 특징을 가지고 있다. 이 4가지 특징에 대해서는 자주 들어 알고 있지만 올바르게 개념을 가지고 있는지는 확인할 필요가 있어 정리를 해보았다. 객체지향의 4가지 특징 캡슐화 상속 추상화 다형성 캡슐화 캡슐화란 변수나 메서드들을 캡슐로 감싸서 안 보이게 하는 정보 은닉 개념 중 하나이다. 객체의 개념에서 볼 때는 객체의 속성(Field)과 행위(Method)를 하나로 묶고, 실제 구현 내용의 일부를 외부에 감추어 은닉하여 외부에서 객체 내부에 어떤 속성이 있는지 완벽하게 알지 못해야 하는 것을 의미한다. 캡슐화는 객체의 속성과 행위를 하나로 묶음으로써 높은 응집도를 가지며, 객체의 내부 상태를 직접적으로 접근하지 못하게 막음으로써 결합도를 낮아지게 한다. public class Person..
2023.10.10 - [Knowledge/개발지식] - [개발지식] 빌드와 컴파일 [개발지식] 빌드와 컴파일 오늘 부트캠프에서 빌드와 컴파일에 대한 이야기가 나왔다. 느낌적으론 알 거 같은데 말로 표현하려니 어려워 따로 정리를 해보려고 한다. 빌드와 컴파일은 프로그래밍에서 중요한 단계이다. Ja jh7722.tistory.com 이전글 중에 빌드와 컴파일에 대해 정리하였다. 이번엔 스프링에서 주로 사용하는 2개의 빌드관리툴인 Maven과 Gradle를 정리해 보자. 빌드 관리 도구 두 개념을 설명하기 전 일단 빌드 관리 도구가 무엇인지부터 알 필요가 있다. 소스코드를 컴파일, 테스트, 패키징 등의 빌드 프로세스를 자동화하고 관리를 해주는 도구를 의미한다. 이 도구를 사용하면 개발 프로젝트에서 반복적인 ..
·Framework/Spring
스프링부트 핵심 가이드 책을 읽고 작성한 내용입니다. 로깅이란? 로깅(logging)은 애플리케이션이 실행하는 동안 발생하는 이벤트, 트랜잭션, 오류 등의 정보를 시간순으로 기록하는 것을 의미한다. 로깅은 개발영역 중 '비기능 요구사항'에 속하지만 디버깅 또는 개발 이후 발생한 이슈를 해결할 때 원인을 분석하는 데 꼭 필요한 요소이다. 이런 로깅을 효과적으로 수행하려면 로그 메서지의 포맷, 로그 레벌, 로그 저장 위치, 보존 기간 등을 적절히 결정하고 관리해야한다. 많은 프로그래밍 언어나 프레임워크에서는 로깅을 지원하는 라이브러리나 도구를 제공하며, 자바 진영에서 가장 많이 사용되는 것이 오늘 정리할 'Logback'이다. Logback 이란? Logback이란 log4j 이후에 출시된 로깅 프레임워크로..
·Trouble Shooting
이슈발생 Swagger 설정 강의를 듣다가 에러가 발생하여 정리한다. Spring Boot 2.7.8 버전과 Swagger 2.9.2 버전 사용하였고 다음과 같은 에러가 발생하였다. Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 해당 에러는 Spring Boot 2.6 버전 이후에 발생된다. spring.mvc.pathmatch.matching-strategy의 default 값이 ant_path_matcher -> path_pattern_parser로 변경되어 특정 라이브러리에서 발생이 된다. 해결방법 application.properties에 아래의 내용을..
·Framework/Spring
스프링에서 사용되는 대표적인 REST API 명세 도구는 Swagger와 Spring Rest Docs이다. 이 둘 중 Swagger에 대해 알아보자. 우린 API를 개발하면 그것을 명세화하여 관리할 필요가 있다. 여기서 명세란 API가 어떤 로직을 수행하는지 설명하고 이 로직을 수행하기 위해 어떤 값을 요청하고, 이에 따른 응답값으로 무엇을 받을지를 정리한 자료를 의미한다. 이러한 API 명세 작업을 개발 중 변경사항을 지속적으로 업데이트가 필요하다. 이 작업은 매우 번거롭고 시간 소모가 일어난다. 이 같은 문제를 해결하기 위해 등장한 것이 바로 'Swagger'라는 오픈소스 프로젝트이다. Swagger란? 서버로 요청되는 API 리스트를 HTML 화면으로 문서화하여 테스트 할 수 있는 라이브러리이다...
·Framework/Spring
스프링 부트 핵심 가이드 책을 보고 정리한 내용입니다. POST API POST API는 웹 애플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장할 때 사용되는 API이다. 웹 API에서 HTTP POST 메서드를 사용하여 요청을 보내며 저장하고자 하는 리소스나 값을 HTTP 바디(body)에 담아 서버에 전달한다. @RequestMapping으로 구현하기 @RequestMapping은 Spring Framework에서 HTTP 요청을 Java 메서드에 매핑하기 위해 사용되는 애노테이션이다. 만약 POST API를 정의하고자 한다면, 아래와 같이 정의할 수 있다. @RequestMapping(value = "/myApi", method = RequestMethod.POST) public Strin..
JH_DEV77
JH’s 개발블로그