전체 글

개발 공부 기록. https://github.com/junseoparkk
❌ Error

[Error] java.lang.IllegalStateException: Failed to load ApplicationContext - h2 DB Connection

1️⃣ 개요 인프런 김영한님의 '실전! 스프링 부트와 JPA 활용 1' 편을 듣다가 MemberRepositoryTest 도중 발생했다. 데이터베이스 연결하는데에 문제가 있었는지 한참을 찾아봤다. 처음에 커뮤니티를 다 뒤져봐도 해결이 안되길래 전전긍긍하다가 우연히 발견한 방법을 해결했다. 기분 날아갈듯 진짜? 보니까 나처럼 비슷한 오류가 발생한 사람이 많은 것 같은데 시도했던 몇 가지 해결법을 작성하겠다. 우선 나는 build.gradle 과 application.yml 파일부터 다시 확인해봤다. 2️⃣ 해결 방법 1) build.gradle [1] dependencies 우선 build.gradle 파일에서 dependencies를 보면 대부분 자동으로 추가됐겠지만, h2 데이터베이스 관련 내용이 없는..

📗 Back-end/📗 Spring

[Spring] SOLID (객체 지향 설계 원칙)

1️⃣ SOLID 란? SOLID 는 Robert C. Martin 이 2000년대 초반 명명한 객체 지향 프로그래밍 및 설계의 5가지 기본 원칙을 Michael C.Feathers 가 소개한 것이다. 이는 객체 지향 프로그래밍에서 중요한 원칙으로 자리잡았으며, 프로그래머가 소스 코드를 읽기 쉽고 확장하기 쉽게 될 때까지 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 'SOLID' 라는 이름은 5가지 원칙인 SRP, OCP, LSP, ISP, DIP 의 각 첫 글자를 따서 지어졌다. 즉, SOLID 는 좋은 객체 지향 프로그램을 설계하도록 하는 원칙인 것이다. 각 원칙은 다음과 같다. SRP (Single Responsibility Principle) : 단일 책임 원칙 ..

📗 Back-end/📗 Spring

[Spring] About Spring Framework

1️⃣ 개요 백엔드 개발에 사용되는 언어와 프레임워크는 정말 다양하다. Python - Django, JS - Node.js, Java - Spring 등 여러 종류가 있다. 물론 자신이 재미있고 잘 맞는 언어와 프레임워크를 선택하여 공부를 하는게 일반적이다. 나는 지금까지 공부하면서 Java 에 큰 흥미를 느꼈다. 그래서 코테 준비도 비교적 널리 사용되는 Python 이나 C++ 로 하려다 마음을 바꾸었다. 그래서인지 자연스럽게 나는 Java -> Spring 으로 공부 방향을 잡았다. 사실 처음에 Spring 이라는 거대한 프레임워크를 공부할 때 어디서부터 시작해야될지, 나에게 맞는지조차 몰랐다. 광고는 아니고 김영한님의 무료 스프링 강의를 보고 웹서비스의 전반적인 흐름을 배웠다. 아무래도 익숙한 J..

📒 Language/📒 Java

[Java] Operator : 연산자

다시 초심으로 돌아가 자바의 기초부터 깊게 공부해보자는 생각으로 연산자를 공부했다. 사실 제일 기초가 되는 문법이자 중요한 내용이나, 자세히 보지 않고 대충 넘긴 적이 많다. 처음부터 공부한다는 것에 의아할 수 있겠으나, 아직은 공부하기 여유로운 기간이기 때문에 이참에 자바에 대해 깊게 파볼 생각이다. 물론 현재 Spring 강좌를 듣고 있고, DB 등을 병행하여 공부하고 있지만 자바가 가장 중요하다고 생각했다. 모든 내용을 기술하진 않을 예정이다. 단지 내가 공부하여 새로 알게 된 내용이나 중요하다고 생각되는 내용 위주로 작성할 것이다. 1️⃣ Operator & Expressions 연산 (Opration) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연산자 (Operator) : 연산에 사..

📒 Language/📒 Java

[Java] Code squad LV.2 숫자 야구

얼마 전 '코드 스쿼드' 라는 교육 기관에서 출제한 숫자 야구 문제를 풀어보았다. 우리가 흔히 알고 있는 그 숫자 야구 게임이다. 단순 구현으로 생각한다면 조건문과 반복문을 적절히 사용하면 어렵지 않을 것이다. 그러나 문제엔 몇 가지 제약 사항이 있기 때문에 조금 더 신중히 생각해야 한다. 다음은 문제와 제약 사항이다. [ 문제 ] 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 포볼 또는 낫싱이라는 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방의 수를 맞추면 승리한다. [예] 상대방의 수가 425일 떄, 123을 제시한 경우 : 1 스트라이크 / 456을 제시한 경우 : 1 스트..

📒 Language/📒 Java

[Java] 변수 & 데이터 타입

1️⃣ Variable & Data Type Java 이외에도 어떤 언어를 배울 때 가장 먼저 변수와 자료형에 대해 공부할 것이다. 오늘은 변수와 자료형에 대해 공부했다. 변수 (variable) 란 값을 저장할 수 있는 메모리 공간 을 의미한다. 변수는 프로그램에 의해 값이 변동될 수 있다. 또한 하나의 값만 저장할 수 있다. 변수에는 한 가지의 자료형으로 저장 가능하다. 예를 들어 정수형은 정수형, 실수형은 실수형으로 말이다. 변수의 선언은 다음과 같다. 1. 기본 - 타입 변수 이름; 2. 초기화시 - 타입 변수 이름 = 값; ex) int num; double num2; String s; int num=10; String s="Hello World"; 2️⃣ Data Type 자료형은 프로그래밍 ..

📒 Language/📒 Java

[Java] Annotation 정리

저번에 Java Spring 을 공부할 때 @ 기호를 처음 알았다. 이것이 바로 어노테이션을 나타내는 기호이며, 이번 기회에 확실히 정리하기로 했다. 1️⃣ Java Annotation 이란? 어노테이션 (Annotation) 은 메타데이터(metadata) 라고 볼 수 있다. 메타데이터란 애플리케이션이 처리해야하는 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보를 말한다. 쉽게 설명하면 주석의 역할을 한다고 보면 되겠다. 어노테이션은 @AnnotationName 의 형태로 작성된다. 어노테이션은 다음과 같은 용도로 사용된다. 1. 컴파일러에게 코드의 문법 에러를 체크하도록 정보를 제공한다. 2. 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생..

📒 Language/📒 Java

[Java] 객체지향프로그래밍(OOP) 개념

About OOP OOP (Object Oriented Programming) : 객체 지향 프로그래밍 Java 는 대표적인 OOP 언어이다. 간단하게 객체 지향 프로그래밍은 객체를 만들고, 이를 조립하는 방식의 프로그래밍이다. 1️⃣ 객체란? 객체 (Object) 란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중, 자신의 속성을 가지고 있고 다른 것과 구분 가능한 것을 말한다. 우리가 살고 있는 세상은 객체로 이루어져 있다. 자동차, 휴대폰, TV 와 같이 물리적으로 존재하는 객체, 이름, 강의, 날씨 등 추상적인 객체가 존재한다. 기본적으로 객체는 '속성' 과 '동작' 을 가진다. 한 예로 '자동차' 라는 객체가 있다면, 속성으로 이름, 가격, 색깔 등이 있을 것이다. 또한 동작으로 달린다,..

박갈
미 개발 구역