[혼공컴운] Chapter 07-1 다양한 보조기억장치 하드 디스크 : 자기적인 방식으로 데이터를 저장하는 보조기억장치 (= 자기 디스크_magnetic disk) 대용량 저장 장치가 필요한 작업 서버실에 자주 출입하는 작업 하드 디스크 구성 플래터 : 실질적으로 데이터가 저장되는 곳 자기 물질로 덮여 있어 수많은 N극과 S극을 저장한다. N극과 S극은 0과 1의 역할을 수행 스핀들 : 플래터를 회전시키는 구성 요소 RPM (Revolution Per Minute) : 스핀들이 플래터를 돌리는 속도, 분당 회전수 ex) RPM이 15,000인 하드디스크는 1분에 15,000바퀴를 회전하는 하드 디스크 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 디스크 암 : 헤드를 원하는 위치로 이동시키는 부품 헤드는 디스크 암에 부착되어 있다 💡 하드 디스크는.. SQL과 NoSQL의 차이는? SQL의 종류를 공부하면서 SQL , NoSQL 을 자주 들어봤을 것이다. 보통 Spring을 개발할 때는 SQL인 MySQL을, Node.js에서는 NoSQL인 MongoDB 를 주로 사용했을 것이다. 하지만 이처럼 프레임워크에 따라 단순히 적합한 데이터베이스가 정해져서 결정하는 것이 아니다. 그렇다면, SQL과 NoSQL에 대해 공부해보자! SQL (관계형 DB) 흔히, 신입이라면 SQL에 대해 먼저 공부해봤을 것이다. 이처럼 SQL을 사용하면 RDBMS에서 데이터의 CRUD를 할수 있다. 관계형 데이터베이스는 1. 데이터는 관계를 통해 여러 테이블에 분산된다. 2. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 와 같은 특징을 가지고 있다. NoSQL(비관계형 DB) 이에 비해 NoSQL.. JPA 와 Mybatis란 무엇인가? / JPA와 Mybatis의 차이 백엔드에서 데이터베이스를 사용하는 프레임워크로, 가장 많이 쓰이는 기술이 'Mybatis' 와 'JPA' 이다. 데이터베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM(Object Relational Mapping) 기술을 제공한다. SQL Mapper 는 '개발자가 작성한 SQL 실행 결과를 객체에 매핑' 시켜주는 프레임워크이며, ORM은 객체와 DB의 데이터를 '자동으로 매핑' 시켜주는 프레임워크이다. SQL Mapper 기술을 제공하는 것이 Mybatis 이며, ORM 기술을 제공하는 것이 JPA 이다. 📌 JPA 란? (Java Persistence API) 자바의 ORM 기술을 쉽게 구현하도록 도와주는 API이다. 즉, 자바에서 객체를 데이터베이스에 저장하고 관리하기 위한 .. [Spring] 스프링이 주기적으로 의존하는 것은? 스프링(Spring)은 자바 개발에서 널리 사용되는 프레임워크이다. 의존성 주입(Dependenct Injection)과 관련된 기능을 제공하며, 개발자들이 애플리케이션을 더 모듈화하고 유연하게 만들수 있도록 한다. 그렇다면 이때, 스프링이 주기적으로 의존하는 것은 무엇일까? 의존성 주입 컨테이너 (Dependency Injection Container) : 스프링의 핵심은 의존성 주입(DI) 이다. DI Container는 객체 간의 의존성을 관리하고, 필요한 의존성을 주입하는 역할을 하는데, 스프링은 이를 통해 느슨한 결합(Loose Coupling)을 유지하며 객체 간의 의존성을 제어한다. AOP(Aspect-Oriented Programming) : AOP는 스프링의 또 다른 핵심 개념 중 하나라.. [Java] Java8, Java11, Java17의 차이 및 기능 Java8, Java11, Java17 수많은 버전들이 있다고 이야기 하지만, 이 버전들에 대해서 이게 무엇이고 어떤 차이가 있는지는 잘 몰라서 정리해보았다. Java8, Java11, Java17 이것들은 오라클(Oracle)이나 다른 개발자 및 커뮤니티에 의해 개발된 자바 프로그래밍 언어의 여러 버전을 말한다. 이러한 버전들은 자바 플랫폼의 주요 업데이트이며, 각각 새로운 기능과 개선사항이 포함되어 있다. Java 8 1. 람다 표현식(Lambda Expressions) : 함수형 프로그래밍을 지원하기 위해 람다 표현식이 도입되었다. 람다 표현식을 통해 코드를 간결하게 작성하고 병렬 처리를 용이하게 할 수 있다. 2. 스트림 API(Stream API) : 컬렉션 처리를 위한 새로운 API로, 병렬처.. [Spring] 스프링 부트에서 auto-configuration을 비활성화하는 방법 Spring Boot는 자동구성(Auto-Configuration)기능을 통해 애플리케이션을 빠르게 구축하고 시작할 수 있는 강력한 기능을 제공한다. 하지만 때로는 특정 모듈의 자동 구성이 원치 않는 동작을 할 수 있다. 이럴때는 해당 자동 구성을 비활성화할 필요가 있다. @SpringBootApplication 어노테이션의 Exclude 속성 사용 @SpringBootApplication 어노테이션을 사용하여 애플리케이션 클래스를 정의할 때, exclude 속성을 사용하여 특정 자동구성을 비활성화할 수 있다. @SpringBootApplication(exclude = {SomeAutoConfiguration.class}) public class MyApplication { public static vo.. [Spring] traceld 와 spanld란? Spring에서 traceId와 spanId란 쉽게 말해, 분산추적시스템의 핵심 개념이다. 분산 시스템에서는 애플리케이션의 각 부분이 동시에 실행되며, 이러한 실행은 여러 서비스 간의 호출 및 통신으로 이루어진다. 이러한 환경에서 애플리케이션의 동작을 추적하고 이해하는 것은 매우 중요하며, 이러한 동작을 해줄 수 있는게 TraceID와 SpanID라고 할 수 있다. TraceID와 SpanID란? TraceID : 분산 시스템에서 전체 트랜잭션을 추적하기 위한 고유 식별자 여러 서비스간의 호출 사이에서 흐름을 추적하는데 사용된다. 모든 로그 및 이벤트에는 동일한 TraceID가 있어야 한다. SpanID : TraceID 내에서 개별 작업 또는 단계를 식별하는 데 사용된다. 각 서비스 호출이 Span으로.. [Spring] 어노테이션의 용도 Annotation Annotation이란 사전적 의미로는 "주석" 이란 뜻이지만, 자바에서는 "코드 사이에 특별한 의미, 기능을 수행하도록 하는 기술"이란 뜻을 의미한다. 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공하고, 코드에 정보를 추가하는 정형화된 방법이다. Annotation을 사용하는 이유 1. 코드가 깔끔해지며 재사용이 가능하다. 2. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공한다. 3. 런타임 시 특정 기능을 실행하도록 정보를 제공한다. 4. 소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다. Annotation 종류 -> 많은 Annotation중에서 자주 쓰이면서, 중요한 Annotation을 정리해보았다 @Compone.. [네트워크] REST API란? - REST API - REST API를 보호하는 방법 REST API란? 쉽게 말해 REST를 기반으로 만들어진 API 이다. 먼저 REST에 대해 알아보자 REST 란? Representationnal State Tranfer의 약어로 '자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것' 을 의미한다. 1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시 2. HTTP Method(POST, GET, PUT, DELETE, PATCH등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것 을 의미한다. 여기에서, CRUD Operation이란? CRUD는 대부분 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리.. 아키텍처, 프레임워크란 무엇인가? Architecture(아키텍처) 란? 아키텍처는 시스템 구성 및 동작 원리를 나타내고 있다. 구성 요소 간의 관계 및 시스템 외부 환경과의 관계가 묘사된다. 아키텍처란 "서비스의 동작원리를 나타내는것" 즉, 하나의 서비스가 어떻게 구성이 되며 어떻게 동작이 된다. 를 나타낸 것 아키텍처 vs 설계 아키텍처와 설계는 비슷하지만 다른 용어이다. 더보기 아키텍처 : 고수준의 구조 또는 결정사항 설계(Design) : 저수준의 구조 또는 결정사항 이 두 용어는 본질적으로 같은 의미이다. 모두 SW 전체 설계의 구성 요소이며, 개별로 존재할 수 없고 경계가 뚜렷하지 않다. 고수준, 저수준 중 의사결정의 연속성의 차이이다. Framework(프레임워크)란? "Frame"은 '틀' , "Work"는 '일하다' 라는.. [기본 지식] Node.js란? 요즘 트랜드를 분석하기 위해 공고를 보다가 백엔드 개발자의 필수 스킬 중 "Node.js" 에 대해 너무 많이 봤다. 그래서, Node.js 가 도대체 뭔데? 하고 너무 궁금해서 찾아봤다. Node.js의 공식 홈페이지 에 따르면, Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다. 라고 정의하고 있지만, 사실 뭔 뜻인지 모르겠다... 정의는 뒤로하고, Node.js로 서버를 만들수 있는데 왜 ? Node.js로 서버를 만드는지에 대해 분석하며, 조금 이 Node.js 에 대해 알게 되었다. 왜 ? Node.js로 서버를 만들까? 우리는 서비스를 구현할 때 대용량 트래픽을 자주 경험하게 된다. 수많은 고객의 요청을 한 번에 받아 거의 동시에, 즉 순서와 .. [spring boot] Spring Boot 시작하기 앞서 적었던 spring 과 spring boot 의 차이점에 대해 적어보면서 Spring Boot 를 사용해야 하는 이유에 대해 정리해보았다 [spring] Spring 과 Spring Boot 의 차이 'Java'의 대표적인 백엔드 개발 프레임워크(Framework)인 "spring"과 "spring boot" 그래서 그게 뭔 차이인건데? 였던 초기 내 궁금증을 위해 정리했던 내용이다. Spring spring(= spring framework) 은 Java 기반 애플 nyung1127.tistory.com 그래서 Spring Boot는 어떻게 쓰는건데? 하는 다음 궁금증을 해결 ☀️ Spring Initializr 접속하기 스프링 부트 프로젝트는 "웹사이트"를 통해서 만들수 있다. 주로 프레임워크들.. 이전 1 2 3 4 다음