CS

잔디심는 정원사
[Java] Java Record 이것의 정체
·CS/JAVA
Java Record의 등장최신 프로그래밍 언어들은 간결하고 효율적인 코드 작성을 중요하게 여깁니다. 데이터를 담는 객체를 정의할 때, 이러한 현대적인 언어들이 제공하는 기능 중 하나가 바로 불변성을 가진 데이터 홀더입니다.Kotlin의 data class 가 개발자들에게 큰 인기를 끌면서, Java도 이에 대한 답변으로 record 를 제시했습니다.  record 는 데이터를 운반하는 간단한 구조를 정의할 때 사용되며, 내부적으로 불변성을 가진 필드와 함께, 필수적인 메소드들을 자동으로 생성합니다. Record와 Data Class 비교Kotlin의 data class 와 마찬가지로, Java의 record 는 개발자가 수동으로 equlas(), hashCode(), toString() 등을 정의할 필..
[Java] Java의 compareTo 메소드와 Comparable 인터페이스
·CS/JAVA
Java에서 객체를 정렬하거나 비교하는 방법에 대해 알아보고자 합니다. 이를 위해 필요한 것이 바로 Comparable 인터페이스와 그 안의 compareTo 메소드입니다. 또한, 이를 이용한 PriorityQueue의 사용법도 함께 알아보도록 하겠습니다. 📚 Comparable 인터페이스란? Comparable은 Java에서 제공하는 인터페이스 중 하나로, 어떤 클래스가 비교 가능하다는 것을 나타내줍니다. Comparable 인터페이스를 구현하는 클래스는 자신의 인스턴스를 다른 객체와 비교할 수 있습니다. 🔍 compareTo 메소드란? Comparable 인터페이스에는 단 하나의 메소드인 compareTo가 포함되어 있습니다. 이 메소드는 두 개의 객체를 비교하고 그 결과를 정수형으로 반환합니다. p..
객체 지향 원리 적용
·CS/OOP
우선 회원 도메인과 주문 도메인을 설계 및 구현해보자 1.1 회원 도메인 설계 회원 도메인 협력 관계 회원 클래스 다이어그램 회원 객체 다이어그램 1.2 회원 도메인 개발 Grade(enum) public enum Grade { BASIC, VIP } Member 엔티티 public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id..
[Java] String, Char 대소문자 확인 및 변환
·CS/JAVA
1. 대소문자 변환 문자열(String)인 경우 대문자로 변환: toUpperCaese() 소문자로 변환 : toLowerCase() 예시 String str = "abc" str = str.toUpperCase(); //"ABC" str = str.toLowerCase(); //"abc" 문자(Char)인 경우 대문자로 변환 : Character.toUpperCase(변환을 원하는 단어) 소문자로 변환: Character.toLowerCase(변환을 원하는 단어) 예시 Char c = "a" c = Character.toUpperCase(c); //"A" c = Character.toLowerCase(c); //"a" 2. 대소문자 확인 문자열(String)인 경우 - 대문자 또는 소문자로 변경 후 비..
[JAVA] String <->Char 변환 정리
·CS/JAVA
String -> Char 1. charAt()로 인덱스 접근하기 예시 String str = "Hello"; char c = str.charAt(0); for문 사용 String input = "Minsu"; for(int i=0; i String 1. String.valueOf()이용 예시 char c = 'a'; String str = String.valueOf(c); char[] array to String 가능 char[] arrCh = {'a', 'b', 'c' }; String str = String.valueOf(arrCh); 2. Character.toString()이용 예시 char c = 'a'; String str = Character.toString(c); char[] array ..
좋은 객체 지향 설계의 5가지 원칙-SOLID
·CS/OOP
SOLID란?클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP: 단일 책임 원칙OCP: 개방-폐쇄 원칙LSP: 리스코프 치환 원칙ISP: 인터페이스 분리 원칙DIP: 의존관계 역전 원칙 SRP 단일 책임 원칙하나의 클래스는 하나의 기능을 담당해 하나의 책임을 수행하는데 집중되어야 있어야 합니다. 단일 책임 원칙 준수 유무에 따른 가장 큰 특징 기준 척도는, '기능 변경(수정)' 이 일어났을때의 파급 효과 이며, 모듈이 변경되는 이유가 한가지 여야 함을 뜻합니다. 책임이란? 책임 = 해야 하는 것       = 할 수 있는 것       = 해야 하는 것을 잘 할 수 있는 것 산탄총 수술산탄총 수술은 산탄이 사방으로 퍼져날라가 동물에게 맞았을 때 수술해야하는 부위가 많아지는 ..
[그래프 탐색] DFS
·CS/Algorithm
DFS란?DFS(깊이 우선 탐색)는 그래프의 시작 노드에서 출발하여 탐색할 할 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘DFS의 특징?스택 자료구조를 사용하지만 보통은 스택 성질을 가지는 재귀 함수로 구현한다.재귀함수를 이용하기 때문에 스택 오버플로(시간초과)에 유의해야한다. -> 다음 게시글에 설명할 BFS보다 느리다.한 번 방문한 노드를 다시 방문하면 안 되므로 노드 방문 여부를 체크할 배열 필요DFS의 동작과정1. DFS를 시작할 노드를 정한 후 사용할 자료구조를 초기화인접 리스트 그래프로 표현하기방문 배열 초기화하기시작 노드 스택에 삽입하기2. 스택에서 노드를 꺼낸 후 노드의 인접 노드를 다시 스택에 삽입pop을 수행해 스택에서 노드를 ..
minsu20
'CS' 카테고리의 글 목록 (5 Page)