본문 바로가기

Category

(227)
첫 회의와 요구사항 명세 작성 회의 기록적인 첫 회의를 진행하게 되었다. 미국인 개발자분이셨기에, 정말 손짓 발짓(그리고 콩글리시..) 으로 회의를 진행했던 것 같다. 다행인 점은 개발자분이 그래도 한국어를 잘 하신다는 점이다. 모쪼록 이번 프로젝트에서는 Notion이 아닌 Jira Confluence를 사용하였는데, 이를 통해 현재 Jira Kanban 보드와 연동할 수 있을 것 같다. 새로운 기술을 학습하고 배우는 것은 정말 의미 있는 일이다. 확정한 기술 스택 언어 / Language Java 21 프레임워크 / Framework Spring Boot 3.2.0 종속성 및 작업 관리자 / Dependency and Task Manager Gradle 8.5 데이터베이스 / Database PostgreSQL 16 토큰 저장소 /..
URI/URL/URN, Restful 원칙 개요 기존 개념의 추가 정의 시간이다. 알고는 있었지만 명확하게 설명하지 못했던 내용들을 다시 복기하고, 정리하고자 한다. Restful을 설명하기 전에, 헷갈렸던 URI/URL부터 짚고 넘어가 보자. URI/URL/URN 1. URI (Uniform Resource Identifier) 정의: URI는 인터넷에서 자원을 식별하는 데 사용되는 문자열이다. '자원'은 웹 페이지, 문서, 이미지, 파일, 그리고 백엔드에서 자주 사용하는 API Endpoint 를 포함하는 개념이다. 기능: URI는 특정 자원을 식별하고, 해당 자원이 어떻게 접근될 수 있는지에 대한 정보를 제공한다. 종류: URI에는 두 가지 주요 형태가 있다. URL (Uniform Resource Locator) URN (Uniform R..
SOLID 5원칙에 대해 java에서 항상 나오던 기본 원칙 중 하나인 SOLID를 예시를 들어 설명하고자 한다. 개념 자체는 알고 있지만 구체적인 예시를 떠올려 보다 생각나 포스팅하였다. SRP(Single Responsibility Principle) : 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다는 원칙. 개인적으로 비교적 가장 쉬운 개념이라 생각이 든다. 객체지향적으로 만들어진 모든 Class들은 각각의 역할에 맞는 메서드, 변수, 책임 등을 가져야 한다. 로그인 클래스가 존재한다면 이 클래스는 로그인에 관련된 기능만을 가져야 한다. 수정, 삭제, 확장 역시도 로그인에 관련된 내용일 것이다. OCP(Open - Closed Principle) 개방 - 폐쇄 원칙 기능의 개방(확장)에는 열려 있고, 변경에는 닫혀..
6064 - 카잉 달력[S1] 문제 https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 ..
AC - 5430[G5] 문제 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. ..
[해시 테이블].. equals와 hashcode를 사용한 객체 비교 탐구(유익) 장장 3.5시간동안 고민하고 찾아봤던 나의 기록을 정리하고자 한다. 알고리즘 문제를 풀던 도중, 의문이 생겨 레퍼런스를 조사하고 정리한 내용이다. 가장 큰 의문의 시발점은 다음과 같았다. "기본형 및 String은 ==나 equals로 참 거짓을 판단할 수 있는데, 내가 만든 Class 객체들도 이걸 사용할 수 있을까?" 결론부터 말하자면 가능하다. Object에서 기본적으로 지원하는 equals 메서드를 자체적으로 Override하면 된다. HashSet -> HashMap -> contains~() -> getNode() -> equals and Hash을 통해 비교하기 때문 내가 궁금했던 HashSet이나 HashMap의 자료구조에서 사용하는 contains도 결국에는 equals와 hashcode..
1874 - 스택 수열[S2] 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지..
자바 버전과 base 선택 기존 프로젝트들은 전부 Java11 & springboot 2.7.x 버전을 사용했었다. 23년까지 11 버전이 LTS를 지원하므로, 새로운 프로젝트는 자바 버전을 올려보고 개발을 할 생각이다. 간단히 찾아본 정보에 따르면, 11버전에서 마이그레이션시 변경사항은 다음과 같다고 한다. Java 11에서 Java 17의 변경 사항 switch 표현식의 표준 포함. Java의 Concurrent Mark Sweep (CMS) 가비지 콜렉터 제거. macOS와 Windows에서 ZGC 가비지 콜렉션 및 메모리 관리 지원. Text Blocks의 두 번째 프리뷰. Foreign-Memory Access API의 인큐베이션. 여러 기능의 추가 및 개선, 예를 들어 Pattern Matching for switch,..