본문 바로가기
반응형

전체 글91

[springboot] maven VS gradle Maven과 Gradle은 둘 다 빌드 도구로, Java 기반 애플리케이션을 포함한 다양한 프로젝트에서 의존성 관리, 빌드 자동화, 배포, 테스트 등을 처리하는 데 사용됩니다. 하지만 두 도구는 설계 철학, 사용법, 성능 등에 있어 몇 가지 중요한 차이점이 있습니다.아래에서 Maven과 Gradle의 주요 차이점들을 비교하겠습니다.1. 빌드 스크립트 언어Maven:XML을 사용하여 빌드 설정을 정의합니다.pom.xml 파일을 통해 의존성, 플러그인, 빌드 구성 등을 설정합니다.XML은 선언적인 방식이지만 다소 장황하고 읽기 어려운 경우가 있습니다.예시 (pom.xml): org.springframework spring-webmvc 5.3.0 Gradle:**DSL (Domain Specific Lang.. 2025. 1. 12.
[spring] servlet-context.xml, root-context.xml, pom.xml, web.xml 차이점 1. root-context.xml의 역할root-context.xml은 애플리케이션 전체에 공통적으로 사용되는 Bean을 정의하는 스프링 설정 파일입니다. 여기에는 비즈니스 로직을 처리하는 서비스(@Service), 데이터 액세스를 처리하는 DAO/Repository(@Repository), 공통적인 유틸리티 등을 정의합니다.예시:서비스 계층 (@Service)데이터 접근 계층 (@Repository)예외 처리, 공통 컴포넌트들 (@Component)root-context.xml 예시 : --> 2. servlet-context.xml의 역할servlet-context.xml은 Spring Web MVC 애플리케이션에서 웹 관련 설정을 처리하는 파.. 2025. 1. 12.
[Redis] 이것이 레디스다(3) - NoSQL NoSQL여러 서버에 데이터 분산 저장조인이 지원되지 않는 데이터베이스스키마 가질 수 없는 데이터베이스 CAP 정리 CAP정리란 컴퓨터 과학 분야에서 분산 컴퓨터 시스템을 설명하는 데 사용되는 이론으로 일관성(Consistency), 가용성(Availability), 분할 허용성(Partition Tolerance)를 의미한다.  이때 두 가지 속성만을 지원하며 나머지 한 속성은 특정 조건에서만 만족한다. 먼저 분산 시스템에서 사용하는 용어를 살펴보자.  위 그림은 분산 시스템을 구성하는 개별 요소들을 나타내고 있다. 분산 시스템을 구성하는 각각의 하드웨어 또는 소프트웨어를 노드라고 부르며, 동일한 기능을 수행하는 노드들의 모음을 클러스터라고 한다. 분산 시스템은 하나 혹은 그 이상의 다중 클러스터로 구.. 2025. 1. 2.
[Redis] 이것이 레디스다(1, 2) - 들어가며 빨리 시작해보기 스케일업 : 단일 서버(하드웨어)의 성능을 증가시켜 더 많은 요청을 처리하는 방법-> 서비스 중단이나 하드웨어 비용 발생-> 하나의 장비에 설치할 수 있는 CPU 및 메모리와 디스크 수 상승에 대한 물리적 한계 있음 스케일아웃 : 동일한 사양의 새로운 서버(하드웨어)를 추가하는 방법 -> 서버 분산-> NoSQL(레디스, 엘라스틱서치 등) 레디스란? 고성능 인메모리 키-값 저장소로서 다섯가지 데이터형(문자열, 리스트, 해시, 셋, 정렬된 셋)을 지원하는 것, 주로 검색엔진으로 빅데이터 환경에서 사용됨.레디스 기본 명령어set 키 값- 키에 대한 값 추가, 키가 없으면 새로 키-값 생성, 키가 있으면 값 덮어씌움명령set 키 값최초 지원1.0.0시간 복잡도O(1)응답, 항상 OK예시> set key1 he.. 2025. 1. 2.
[java] JVM 동작 방식 및 메모리 구조 일반적으로 대부분의 컴파일러는 컴파일과정을 통해 기계어로 작성된 실행 프로그램을 생성한다. 하지만 JAVA는 이와 달리 OS와 독립적인 특징으로 인해, 컴파일 과정에서 기계어가 아닌 바이트 코드로 작성된 .class 파일을 생성한다. 그렇다면 기계어로 번역하는 역할은 자바에서 누가 할까? 그것이 바로 JVM(Java Virtual Machine)의 역할이다.JVM은 OS와 프로그램 사이에서 컴파일과정을 통해 생성된 바이트코드(.java -> .class)를 기계어로 번역해주는 역할을 한다. 이 자세한 과정에 대해 알아보자.JVM 동작 방식개발자가 자바 소스코드(.java)를 작성한다.Build 라는 작업을 통해 자바 컴파일러의 javac 라는 명령어로 바이트코드인 .class 파일을 생성한다.컴파일된 바.. 2024. 12. 23.
[컴퓨터구조] 컴파일러 vs 인터프리터 차이 소스 코드 작성 및 컴파일개발자는 C, Java, Python 등의 고급 프로그래밍 언어로 소스 코드를 작성합니다. 이 코드는 사람이 이해할 수 있는 형태로 작성되어 있습니다.소스 코드는 컴파일러에 의해 기계어(또는 중간 언어)로 번역됩니다. 컴파일 과정에서는 코드 최적화, 오류 검사 등이 수행되며, 실행 가능한 프로그램(실행 파일)을 생성합니다. 일부 언어(예: Java)에서는 바이트코드와 같은 중간 형태로 컴파일되어, 가상 머신에서 실행될 수 있습니다.링킹컴파일된 코드는 필요한 라이브러리나 다른 모듈과 함께 링킹됩니다. 정적 링킹은 컴파일 시간에 외부 코드나 라이브러리를 실행 파일에 포함시키며, 동적 링킹은 프로그램이 실행될 때 필요한 코드를 불러오는 방식입니다.최종적으로, 링킹 과정을 거쳐 완전한 .. 2024. 12. 18.
반응형