전체 글
[SpringBoot] Maven vs Gradle
이전에 Maven을 사용했지만, 최근엔 대부분 Gradle을 사용하는 듯하여 차이점을 알고 싶어 간단히 조사해 포스팅하려고 한다. Maven이란? Maven이전에 사용하던 Ant의 불편함을 개선하고 기능을 추가한 빌드 도구 Java용 프로젝트 관리도구 pom.xml에 필요한 라이브러리를 작성하면 네트워크를 통해 자동으로 다운로드하여 로컬에 저장한다. 과거에 maven 빌드가 잘 안되었을 때, 동료 로컬에 있는 maven 파일들을 복사해 사용했던 경험이 있다. 필요한 라이브러리와 연관된 라이브러리들까지 다 연동이 되어서 관리가 된다. 가독성이 좋지 않다. 가끔씩 오류가 발생해 재설치하거나 재로딩하는데 시간이 많이 소모된다.(개인적인 생각) 검색 측면에서도 maven사이트는 불친절하다고 느껴진다. Gradl..
[TIL] Day 4
오늘도 역시 생소한 부분의 강의를 들었다. 평소에 많이 사용하던 라이브러리들인데 어쩜 이렇게 새롭고, 다른 방식으로도 가능하다는 게 그저 신기하다. 오늘 할 일 7시 전에 기상 디자인패턴 정리 오늘 강의 정리 강의 듣기 멘토님과 스터디 알고리즘 1문제 풀기(풀다가 실패했다ㅠ) TIL 1. Collection - 마찬가지로 평소에 엄청 쓰던 ArrayList, LinkedList... 들이 바로 컬렉션이다. - 컬렉션은 추상체로 여러 데이터의 묶음이다. - 변수처럼 하나의 값이 아닌 여러 개의 값을 List 형식 등에 담을 때 주로 사용한다. (정리 후 link 달기) 2. Iterator - 묶여있는 데이터에서 하나씩 데이터를 처리할 수 있는 수단이다. - next() 함수로 다음 데이터를 조회할 수 있..
[TIL] Day 3
오늘부터는 하루 일과 시작 전에 할 일 정리도 할 겸 미리 작성해두고 시작하려고 한다. 추가로, 마지막으로 작성할 때 내일 해야하는 일을 리스트로 적으면 더 계획적으로 생활할 수 있을 것 같다. 오늘 강의는 정말.. 내가 모르는 부분만 콕콕 강의를 진행하셨다. 그래서 처음 강의가 분량이 별로 없음에도 불구하고, 약 3시간..? 정도 반복해서 시청했다. 그만큼 새롭게 알게 된 정보가 많았는데 이걸 다 언제 정리할지 무섭다... 강의를 다 들으니 밤이다ㅠㅠ 시간관리에 실패한 하루.. 개선이 필요해 보인다. 일단 간단하게 요약을 해본다. TIL 1. 인터페이스 (1) 구현부분이 없기 때문에 상속 시 구현을 강제한다. - 추상메소드로 이루어져 구현이 되어 있지 않기 때문에, Override로 재정의를 강제한다...
[디자인패턴] GoF 디자인 패턴 23가지
디자인 패턴이란? SOLID 원칙을 지키며 소프트웨어를 설계할 때 공통점을 모아논 것이 디자인 패턴이다. 즉, 공통적으로 발생하는 문제를 예방하고 클래스의 재이용성을 높일 수 있는 해결책이다. GoF(Gang of Fout) 디자인 패턴 1. 생성(Creational) 패턴 - 객체 생성에 관련된 패턴으로 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 끼치지 않도록 유연성과 재사용성을 향상시킨다. 2. 구조(Structural) 패턴 - 객체와 클래스를 보다 큰 구조로 조립하는 동시에 유연하고 효율적으로 유지하는 방법을 제공하는 패턴이다. 3. 행위(Behavior) 패턴 - 알고리즘과 객체 간의 책임 할당과 관련이 있다. 객체가 혼자서 수행할 수 없는 작업을 여러 객체로 분배하고, 이 과정에서 객..
[프로그래머스] 멀쩡한 사각형 (Java)
프로그래머스 Level 2 멀쩡한 사각형 (자바) 출처 https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군..
[TIL] Day 2
오늘은 어제보다 더 많이 그냥 무심히 지나쳤던 내용에 대해 다시 들을 수 있었던 기회였다. 여태 거의 자바만 사용해왔는데, 정작 객체지향이 무엇인지 어떻게 사용해야 하는지 등등 잘 모르기 때문에 이참에 정리할 수 있는 기회가 되어서 좋다. TIL 1. 객체지향 Java 언어를 처음 접할 때 가장 먼저 볼 수 있는 문구가 '객체지향 프로그래밍 언어'라는 문구다. 나는 단순히 클래스 별로 기능을 나눠 잘게 쪼개는 것이 객체지향이라고 이해하고 있었다. 하지만, 이에 더해서 살펴보아야 할 부분이 많았다. 객체지향 프로그래밍 : 말 그대로 객체로 프로그래밍하고, 프로그램을 객체로 구성하는 것이다. 과거에는 프로그램이 규모가 작아 그냥 진행하면 됐었지만, 점점 규모가 커지면서 해결책을 생각한 것이 '프로그램을 작게..
[Java] Object(toString(), equals(), hashCode())
Object가 모든 클래스의 조상 클래스는 사실을 사람들이 잘 모를 수 있다. 모든 클래스가 Object를 상속받고 있지만, 생략되어 있기 때문에 관련 내용을 보지 않았다면 알 수가 없다. 나 또한 처음에는 알지 못했다. 그래서 모든 객체는 Object의 메소드를 모두 호출해 사용할 수 있다. 총 11개의 메서드로 구성되어 있는데, 이 중 몇 가지를 살펴보고자 한다. toString() - 기본 동작 : 객체의 해시코드 출력(클래스명@16진수해시코드) equals() 메소드 다음으로 가장 많이 사용했던 메소드다. 나는 문자열이 아닌 변수를 문자열로 변환시킬 때 많이 사용했다. 그래서 당연히 문자열을 리턴하는 역할로 알고 있었지만 원형은 달랐다. 예시를 살펴보자. 아래와 같이 객체에 toString()을 ..
[Java] StringBuilder vs StringBuffer
Java로 코딩 테스트를 준비하다 보면 문자열 문제를 많이 마주한다. 이때, 기본 String을 사용하기도 하지만 StringBuilder와 StringBuffer를 사용하는 경우도 많다. 이 두가지에 대해 알아보도록 하자! String String과 2개 클래스의 차이를 보면 불변함의 차이가 있다. String : 불변(immutable) String 객체는 한 번 생성되면 할당된 메모리 공간이 변하지 않는다. 즉, +연산을 사용했을 때 기존의 문자열에 문자를 덧붙이는 것이 아니라 덧붙여진 새로운 String 객체를 만드는 것이다. 이것은 메모리 측면에서 굉장히 비효율적이다. 위와 반대로 간단하게 사용하거나, 동기화에 대해 신경쓰지 않아도 되는 경우에는 불변함이 장점이다. 자바에서 String은 Hea..