전체 글 92

gradle, 왜 쓰는가

먼저 Gradle이란? Gradle은 빌드 자동화 시스템이다 (CI/CD를 위해 아래 작업들을 자동화 시켜 주는 Groovy 기반의 오픈소스 빌드 도구) +) 빌드 도구란? 소프트웨어 개발에 있어서 소스 코드를 실행 가능한 어플리케이션으로 만들어주는 도구 빌드 과정을 자동화하여 관리하는 기능을 하기 때문에 빌드 관리 도구 도는 빌드 자동화 도구라고 불리기도 한다 Gradle을 사용하면 간편하게 Java 소스 코드를 실행한 가능한 jar 파일로 만들어준다 그리고 우리가 작성한 Java 코드를 설정에 맞게 자동으로 Build해준다 - Build란 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정을 뜻한다 - 우리가 개발을 하면서 필요로하는 외부 라이브러리들을 dependencies 부분에 작성하면 Gra..

Think Deeply 2024.02.01

@RequireArgsConstructor와 직접 생성자 만들기의 차이점과 고민

controller를 만드는 와중에 필드에서 생성자를 만들어달라는 빨간 줄이 떠서 직접 생성자를 넣을 지 annotation을 쓸지 고민이 됐다. 지금같이 파라미터값으로 몇 개밖에 넣지 않는다면 생성자를 만드는 게 눈으로 어떤 파라미터가 들어가는지 알 수 있어서 보기에 좋지만 더더욱 많이 들어간다면 가독성도 좋지 않을 뿐더러 @RequireArgsConstructor와 직접 생성자를 만드는 게 어떤 차이점이 있는지 궁금해졌다. ---------------------------------------------------------------------------------------------------------------- 1. @RequireArgsConstructor 넣기 @RequireArgsCo..

Think Deeply 2024.01.29

넷플릭스 응용 HTML/CSS 작성하기

코드를 작성하면서 참고할만한 HTML 소스를 올려본다. 세 가지 버전으로 차근차근 비교하면서 보면 도움이 된다 ver.1 spartaflix 홈 시리즈 영화 내가 찜한 콘텐츠 오늘 서울의 온도 : 20.00도 Login Sign-up 킹덤 병든 왕을 둘러싸고 흉흉한 소문이 떠돈다. 어둠에 뒤덮인 조선, 기이한 역병에 신음하는 산하. 정체 모를 악에 맞서 백성을 구원할 희망은 오직 세자뿐이다. 영화 기록하기 상세정보 영화 이미지 주소 영화 제목 별점 별점선택 ⭐ ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 추천 이유 기록하기 영화 제목 ⭐⭐⭐ 영화 코멘트 영화 제목 ⭐⭐⭐ 영화 코멘트 영화 제목 ⭐⭐⭐ 영화 코멘트 영화 제목 ⭐⭐⭐ 영화 코멘트

HTML & CSS 2024.01.28

영속성 컨텍스트란? - JPA 트랜젝션

스프링 영속성 컨텍스트는 트랜젝션과 관련이 있다 먼저 영속석 컨텍스트와 트랜젝션의 개념과 연관성에 대해 알아보자 1. 영속성 컨텍스트 Persistence(직역:영속성, 지속성)를 객체의 관점으로 해석해 보자면 ‘객체가 생명(객체가 유지되는 시간)이나 공간(객체의 위치)을 자유롭게 유지하고 이동할수 있는 객체의 성질’을 의미이다 => 쉽게 말해 Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간 => 직접 sql을 개발하지 않아도 JPA를 사용해서 DB에서 데이터 CRUD가 가능하다 영속성 컨텍스트에 접근하여 Entity 객체들을 조작하기 위해서는 EntityManager가 필요하다. (EntityManager : Entity를 관리하는 관리자) 개발자들은 EntityManager를 사용해서..

Spring/Spring boot 2024.01.25

[MySQL] [42000][1049] Unknown database 'database name'. 에러 해결 방법

데이터베이스를 연동하려는데 오류코드 [42000][1049] Unknown database 'memo'. 가 떴다. 이미 만들어져 있는 memo database를 가져오려고 했는데 안 가져와지는 이유는 뭘까 검색을 해봤다. MySql에서 DB 백업 후 복원 시 종종 발생하는 에러다 에러 메세지 그대로 해당 DB를 알 수 없다는 의미인..! 데이터베이스가 없으니 데이터를 생성해주면 된다 -> MySQL commend Line 열어서 다음을 입력해주면 해결 CREATE database "원하는 데이터 베이스 이름";​ test connection 누르니 succeeded 해결 완료👍👍

TIL 2024.01.24

object 클래스의 메서드와 instance of

부모 클래스가 없는 자식 클래스는 컴파일러에 의해 자동으로 object클래스를 상속받게 된다. 다음은 상시로 쓸 수 있는 object 클래스 메서드를 정리해보려고 한다. 📕 object 클래스의 메서드 종류 Object clone() : 해당 객체의 복제본을 생성하여 반환한다. (Cloneable 인터페이스를 구현한 클래스만 복사 가능함) boolean equals(Object obj) : obj객체와 현재객체가 같은지 비교하여 결과를 반환한다. Class getClass() : 현재 객체의 클래스 정보를 담은 Class타입의 객체를 반환한다. int hashCode() : 자바에서 객체를 식별하는 정수값인 해시 코드를 반환한다.(현재 객체의 해쉬코드 값을 반환) String toString() : 해당..

JAVA 2024.01.23

[JAVA] 부분 문자열 - .contains()

문제 : 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을, 부분 문자열이라면 0을 return하도록 solution 함수를 완성해주세요. 풀이 : class Solution { public int solution(String str1, String str2) { int answer = 0; if (str2.contains(str1)) { // contains 메소드 사용 : 포함되어있는지 여부 확인 answer = 1; } else { answer = 0; } return answer; } } str2에서 str1..

코딩 테스트 2024.01.17

intellij ultimate spring 기본 환경 세팅

spring을 intellij로 세팅하는 방법을 정리해보겠다. Generators - Spring Initializr 클릭 후 세팅은 기본적으로 java, gradle-groovy, jdk 17로 맞춘다. 왜 gradle이어여만 하는지 등등은 다음 블로그 글에 정리하는걸로..! 그 다음에 dependencies에서 lombok과 spring Web을 넣어준다. lombok : Entity 또는 DTO 클래스를 만들때 개발자가 직접 Getter, Setter 메소드를 만들지 않고 자바 클래스에 Getter, Setter, 생성자를 자동으로 만들어 주는 도구 (주의 : 아주 기본적인 스프링 세팅값이기 때문에 나중에 원하는 의존성을 주입해주면 된다) intellij settings - auto import 들..

Spring/Spring boot 2024.01.17

static을 깊게 이해해보자

java 코드를 보다 static 키워드의 실사용성에 대해 궁금한 점이 생겨 찾아보고 정리한 부분을 블로그에 정리하려고 한다. public class hi { public static void main(String[] args) { Solution Foo1(); // static이 붙은 함수'Foo1'의 호출 방식 var sol = new Solution(); // static이 붙지 않은 함수'Foo2'의 호출 방식 sol.Foo2(); } public class Solution{ public static void Foo1() {} // static 선언 public void Foo2() {} } } new 키워드가 붙은 메모리는 heap공간에 할당이 된다 우리가 올리려는 것에 적당한 heap공간이 있..

Think Deeply 2024.01.13

[java] 정수의 제곱근 판별 (Math.sqrt, Math.pow)

문제 : 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 풀이 : class Solution { public long solution(long n) { long answer = 0; if((Math.sqrt(n))%1 == 0) { // 제곱근을 1로 나눴을 때의 나머지가 0 => 정수의 제곱이라는 말 answer = (long) Math.pow(Math.sqrt(n) + 1, 2); // n 값 제곱근에 1을 더한 값을 제곱(2)으로 만듬 } else { answer = -1; } return answer; } } answer =..

코딩 테스트 2024.01.12