본문 바로가기
728x90

분류 전체보기143

[Java] Softeer 슈퍼바이러스를 풀면서 (분할 정복과 이것 저것 정리) 들어가면서.. 요즘 Java 언어로 코딩테스트를 대비하기 시작하면서, Softeer에 등록된 연습 문제들을 풀며 자바 폐관 수련을 이어나가고 있습니다.. 그러던 중 오랜만에 분할 정복을 통해 풀어야 하는 문제를 풀이하는데, 풀이 방법을 떠올리지 못해서 분할 정복 풀이 방식에 대해 정리해 볼 겸.. 공부하면서 깨달은 여러 가지를 끄적여보려고 합니다. Softeer Level 3 슈퍼바이러스 문제 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 바로 이 문제가 글을 쓰게 만든 원인입니다. 문제 자체는 설명만 보면 굉장히 쉬워 보이지만, linear 하게 곱셈 연산을 N번 하게 되면 10의 16승 번의 연산을 진행하게 되어 제 시간을 절대 지킬 수 없습니다. 이러한 경우 이.. 2023. 8. 3.
Java의 상속에 대해서 이것 저것 정리 상속의 의미 Java에서 extends라는 예약어로 상속을 표현한다는 것은 알고 계시는 분들이 많을 것 같습니다. 그렇다면, 상속은 무엇을 의미할까요?? Java에서 상속이 의미하는 바는 extends (확장하다)라는 예약어에서 알 수 있듯이 확장의 의미를 갖습니다. 접근 제어자가 public, protected로 설정되어 있는 부모 클래스의 멤버를 자식 클래스가 기본적으로 물려받고, 이에 더해서 추가적인 기능을 자식 클래스가 구현하니 확장의 개념이 되는 것입니다. ❓ 접근 제어자란?? Java에는 4가지의 접근 제어자 public, protected, package-private, private가 존재합니다. public 쪽으로 갈수록 공개되는 접근 제어자이며, private 쪽으로 갈수록 외부에 공개.. 2023. 8. 2.
Thymeleaf에 대한 정리 글을 쓰는 목적에 대해서 이번 글은 thymeleaf의 기본 사용 방법과 특징 등 다양한 정보를 정리하기 위해 작성하게 되었습니다. 글의 내용은 thymeleaf 공식 문서와 김영한 님의 "스프링 MVC 2편 - 백엔드 웹 개발 활용 기술" 강의에서 들은 내용을 기반으로 작성했으며, 추후에 thymeleaf를 사용하면서 내용을 개선해 나갈 예정입니다. 따라서 아래에 작성된 글의 내용 중 틀린 부분이 있을 수도 있어, 그러한 부분을 편하게 지적해주시면 감사할 것 같습니다. Thymeleaf의 특징 https://www.thymeleaf.org/ Thymeleaf Integrations galore Eclipse, IntelliJ IDEA, Spring, Play, even the up-and-coming .. 2023. 7. 28.
Java의 Exception에 대해서 이번 글에서는 Java에서 예외 처리 방식을 어떻게 가져가는지에 대한 내용을 다루어 보려고 합니다. 요즈음 개발을 하면서 예외 처리 방식에 대해 공부의 필요성을 느껴 간단히 정리했던 부분이기도 하고, 김영한 님 강의에서는 한 파트를 따로 빼서 설명을 해주셔서 내용을 취합해서 정리해보려 합니다. 글에서 등장하는 개념은 주로 김영한님의 Spring DB 1편 강의를 참고했습니다. Exception 계층 구조 우선 자바의 예외 계층은 다음 구조도와 같이 구분됩니다. 예외 관련 객체들 역시 최상위 객체인 Object 객체를 상속받고 있으며, 그 아래에 Throwable 객체가 있음을 확인할 수 있습니다. Throwable class는 모든 예외들의 조상으로 getMessage, printStackTrace 등 .. 2023. 7. 5.
ApplicationRunner interface에 대한 정리 들어가며... 이번 글은 기존에 schema.sql 파일에 저장되어 있는 기본 데이터 import 부분을 ApplicationRunner라는 일종의 spring boot 프로젝트 실행 시점에 실행되는 initializer를 이용해 개발하는 업무를 담당하게 되어, ApplicationRunner라는 것이 도대체 무엇인지를 먼저 파악하기 위해 작성한다. ApplicationRunner interface는 일종의 initializer ApplicationRunner는 'org.springframework.boot' package에 포함되며, Spring Boot application이 시작되는 시점에 몇 가지 특정 작업을 수행하기 위해서 사용할 수 있다고 한다. 즉, 애플리케이션의 시작 단계에 코드를 실행하기.. 2023. 6. 8.
Spring-Boot multi-module setting MSA는 여러 개의 모듈이 협력해 하나의 큰 기능을 수행하는 형태 MSA(Micro-Service Architecture)는 다른 것이 아니라 독립적으로 배포 가능한 여러 개의 모듈이 복합적으로 동작해서 하나의 큰 기능을 수행하는 서비스 형태를 의미한다고 이해했다. (명확한 사회적 합의에 따른 정의가 별도로 존재하지 않는다) MSA와 대비되는 개념으로는 Monolithic Architecture(모놀리식 아키텍쳐)가 존재하는데, 이 개념은 면접 질문으로도 나왔던 개념으로 소프트웨어의 모든 구성 요소가 하나의 프로젝트로 통합된 형태를 의미한다. 두 아키텍쳐 각각의 장단점이 있지만, 이 글에서는 SpringBoot로 빌드하는 프로젝트에서 MSA와 같이 multi-module project 구조를 만드는 과정.. 2023. 5. 23.
728x90