본문 바로가기
반응형

프로그래밍이야기/Java12

[Java] List와 ArrayList List와 ArrayList의 비교를 통해서 인터페이스와 구현체에 대해서 알아보도록 하겠습니다. 또한 이러한 구조의 문제점은 무엇이고 장점은 어떤 부분이 있는지도 확인해보도록 하겠습니다. 자바에서는 전체 사용자수, 오늘 등록한 주문수 등 복수의 형태의 데이터를 저장하여 활용하기 위해서는 List 를 사용합니다. 아래는 샘플 코드입니다. List lists = new ArrayList(); 그렇다면, 왜 이렇게 사용할까? 그 내용을 알아보기 위해 정리합니다. List List 는 선형 자료구조로 순서를 가진 항목들이 모여 있습니다. 먼저 List 는 Collection 의 하위 인터페이스입니다. public interface List extends Collection 2022. 7. 9.
TDD 연습 - 특정 문자열에 하이라이트 표시 TDD 연습을 하기 위해서 나름 아껴놓고 있다가 진행하게 되었습니다. 유투브 영상의 앞부분 요구사항 나오는 부분만 확인한 후 실습을 진행하였습니다. 그리고 직접 TDD로 연습하면서 개발을 완료한 다음, 영상에서 진행하신 부분과 내가 진행한 코드가 어떤지 비교를 해보는 것도 좋을것 같습니다. 출처 최범균님 유투브 직접 진행한 소스는 github에서 확인할 수 있습니다. - 소스 바로가기 요구사항 특정 문자열에 하이라이트를 표시하는 내용이며, 요구사항은 다음과 같습니다. 문자열 목록에서 note가 포함된 문자열을 강조해서 출력하는 프로그램을 만든다. 단, 정확하게 원하는 알파벳만으로 이루어진 단어만을 확인해야 한다. 예를 들어, note1이나 keynote는 원하는 단어가 아니다. note의 앞이나 뒤에 숫.. 2022. 6. 23.
[자료구조론] Queue 웹 개발자 일을 하면서 Queue 을 사용하는 경우를 겪어보지 못하였습니다. 대학교 2학년때 배웠던 데이터구조론에서 자료구조에서 배웠던 기억과 코딩 테스트를 준비하면서 배웠던 부분들을 제외하고는 실제 개발 환경에서는 사용해보았던 적이 없습니다. RabbitMq , Kafka 등 에서 사용되는 Queue의 모습을 볼 수 있지만, 사용해본적 역시 없습니다. 먼저 Queue에서 제공하는 개념을 확인하고 메소드를 정리해보려고 합니다. 궁극적으로는 RabbitMq 와 Kafka 를 이용한 실습예제까지 진행하는 것이 목표입니다. Queue 를 보고 가장 먼저 떠올린것은 롤러코스터에서 사람들이 줄을 스는 것이었습니다. (그림과는 무관합니다. 롤러코스터 안 타본지 엄청 오래되었네요.) 모든 소스 코드는 Github를 .. 2022. 4. 10.
[자료구조론] Stack 정리 웹 개발자 일을 하면서 Stack 을 사용하는 경우를 겪어보지 못하였습니다. 대학교 2학년때 배웠던 데이터구조론에서 자료구조에서 배웠던 기억과 코딩 테스트를 준비하면서 배웠던 부분들을 제외하고는 실제 개발 환경에서는 사용해보았던 적이 없습니다. Stack 의 자료구조는 마치 지금 내 책상위에 올려져 있는 책들과 비슷해보입니다. (물론 현재 제 책상은 아닙니다만…) 모든 소스 코드는 Github를 통해서 확인 가능합니다. - 소스바로가기 Stack이란? 이미지에서 보시는것처럼 Stack 은 쌓아올린다는 것을 의미합니다. Stack 특징 Stack 은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO) 입니다. 자료를 넣거나 뺄 수 있는 것은 top 이라고 하며, 이 top 에는 가장 최근에 들.. 2022. 4. 10.
[Java] 상수를 활용하자 상수의 활용 읽기 쉬운 코드를 작성하기 위한 노력 중의 하나로 매직 넘버 대신 상수를 활용하고 있습니다. 일각에서는 상수를 사용함으로 코드가 길어져서 오히려 가독성을 해치는 것이 아니냐고 하는 경우도 있습니다. 유지보수를 하는 입장에서 생각을 해본다면, 의미 있는 상수로 인하여 코드의 길이는 조금 길어졌지만 가독성은 있는 경우 매직 넘버로 인해 코드의 길이는 조금 짧아졌지만 무슨 내용인지 모르는 경우 후자보다는 전자의 경우가 조금 더 나은 상황이라는 생각이 듭니다. 후자를 선택해서 개발을 하다가 매직 넘버를 만나게 되었는데, 그 의미를 파악했다 하더라도 진짜 그 의도가 맞는지 담당자에게 확인해봐야 하는 커뮤니케이션 비용도 들어가게 됩니다. 사실, 매직 넘버 대신 상수를 잘 활용하기 위해서는 네이밍룰을 정.. 2022. 3. 20.
[Lombok] Constructor 정리 Lombok은 도메인 개발시 불필요한 코드의 사용을 줄여주고 강력한 기능을 제공하여 줍니다. 그만큼 잘 알고 써야 하는 것이 맞고 개인적으로는 잘 사용하지 못할것 같으면 사용을 하지 말고 직접 개발하는 것이 맞다고 생각합니다. 그래서 잘 사용하기 위해서 하나씩 정리해보려고 합니다. 자바로 개발을 진행하면서 생성자를 통하여 많은 내용을 진행하게 됩니다. Lombok 에서는 생성자를 생성하여 주는 기능 또한 제공하여 주는데 다음과 같은 어노테이션을 제공합니다. @NoArgsConstructor : 기본 생성자를 만드는데 사용합니다. @AllArgsConstructor : 모든 필드의 생성자를 만드는데 사용합니다. @RequiredArgsConstructor : 필수 생성자를 만드는데 사용합니다. 각각의 기본.. 2022. 2. 1.
반응형