| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- select
- 변수와 메서드
- 메세지 큐
- git 기초
- 원시타입
- SQL
- N+1
- delete
- 멱등성
- 참조타입
- 프로그래머스 코테
- 오버로딩
- 서버 스크립트
- jsoup
- exclusive lock
- 연산자와의 관계
- 컬렉션 프레임워크
- foreigen key
- 프로그래머스
- null/not null
- bufferedInputStream
- 오버라이딩
- 즉시로딩
- 변수와 상수
- 피연산자
- Shared Lock
- Java
- 지연로딩
- InterruptedException
- 추상메서드
- Today
- Total
목록Programming (58)
[JAVA_Back-End]
Kafka를 알기 전에는 MQ(Message Queue)를 알아야 한다..!메시지 큐(MQ)비동기 메시지를 사용하는 다른 응용프로그램 사이의 데이터 송수신을 의미하는데 MOM을 구현한 시스템 => MQ(메세지 큐)* 메시지 지향 미들웨어(Message Oriented Middleware: MOM)Producer가 메시지를 큐에 전송하면 Consumer가 처리하는 방식메시지를 비동기로 처리하고 queue에 저장하기 때문에 consumer에게 병목을 줄여줄 수 있는 장점이 있음Kafka 란?분산형 스트리밍 플랫폼메시지를 메모리에 저장하는 메시징 시스템과는 달리 파일에 저장을 하기 때문에 카프카를 재시작해도 메시지 유실 우려가 감소된다.브로커가 컨슈머에게 메시지를 push해주는 방식이 기본 메시징 시스템이라면..
JPA의 N+1문제로 데이터베이스의 과부하가 생길 수 있다이 한 문장으로는 해당 문제가 어떤 경우이고 결과적으로 어느정도의 과부하인지 가늠이 잘 안된다.아래 내용으로 조금 더 자세히 알아보도록 하자.N+1 문제 특정 동작에 대한 데이터 요청이 1개의 쿼리로 처리되길 기대했는데 예상치 못한 N개의 추가 쿼리가 발생하는 현상 특정 테이블과 연계된 다른 데이터를 조회할 때, 1차 캐시에 해당 내용이 없으면 관련 내용을 쿼리를 통해 불러오게 된다.만약, 이러한 연계 데이터들이 100만개라면...? N+1문제가 발생하면서 데이터베이스에 엄청난 과부하가 발생한다는 것이다... JPA 어노테이션인 @OnetoMany의 경우 해당 내용이 적용된다.ex) 하나의 속성(One)에 연결된 다른 테이블의 여러 속성(Many..
Transaction?- 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위- 작업의 단위는 사용자가 어떤 행위를 했을 때 수행되는 명령문들을 합친 것이라고 생각하면 된다.EX) 저장버튼을 누름 -> DB)Insert 후 목록 최신화를 위해 Select 동시 수행(작업단위 = 트랜잭션) -> 최신화된 목록 확인 트랜잭션(Transaction)의 특징원자성(Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되거나, 전혀 반영되지 않아야 한다.일관성(Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.독립성(Isolation): 어떤 하나의 트랜잭션이라도, 다른 트랜잭션의 연산에 끼어들 수 없다.지속성(Durability): 트랜잭션이 성공적으로 완료되었을 경우,..
CodeIgniter? PHP기반의 프레임워크 MVC모델을 지원하며 빠르다. Model: Controller로부터 전달받은 객체 또는 데이터를 Application의 Business Logic에 따라 가공 View: 데이터의 입력과 출력을 담당 Controller: View로부터 넘겨 받은 메시지 또는 객체를 파악하여 해당 객체를 어떤 Model로 전달할지를 결정 Controller 1. URL에 맵핑되는 작업을 수행 if) url이 www.testpage/index.php/webinfo 라면,Controller 디렉토리 밑에 webinfo.php를 생성하면 codeigniter가 1:1 매칭을 한다. ※ webinfo.php파일 내부에서 class name은 webinfo로 동일하게 사용해야한다. ※ ..
1. 기본 Java: 스프링은 Java 기반으로 작동하므로 Java 언어 자체를 잘 이해해야 한다. 객체지향프로그래밍(OOP) 개념과 Java 기본 문법을 숙지하도록 하자. 2. Spring Core: 스프링의 핵심 기능 및 개념을 이해해야 한다. - 스프링 IoC(Inversion of Control) 컨테이너 - 의존성 주입(Dependency Injection) - Bean 관리 - AOP(Aspect-Oriented Progamming) 3. Spring Boot: 스프링 부트는 스프링 애플리케이션을 빠르고 쉽게 시작할 수 있게 해주는 프로젝트이다. 스프링 부트를 사용하여 웹 애플리케이션을 만들고 구성하는 방법을 익히도록 하자. 4. Spring MVC 또는 Spring WebFlux: 웹 애플리..
APM이란? PHP는 유닉스나 리눅스 환경에서 주로 사용되며, 웹 서버 프로그램인 아파치와 데이터베이스 기능을 지원하는 MySql과 연동해 동작함. 이 세 가지를 통칭하여 APM(Apache, PHP, MySQL)이라고 부름. - PHP는 HTML 언어의 기능을 보완하는 역할을 함. 즉, HTML언어는 웹 문서를 작성하는 데 한계가 많음. -> 이를 보완하기 위해 PHP가 개발됨. HTML문서 내부에 PHP 코드를 추가하는 형식으로 사용. -> 클라이언트가 웹 문서를 요청하면, 서버는 웹 문서에 포함된 PHP코드를 먼저 실행한 후에 그 결과를 웹 문서에 반영하여 클라이언트에 회신함. PHP와 비슷한 기능을 수행하는 ASP(Active Server Page)는 MS 윈도우즈 서버 운영체제에서 제공하는 다양..
String - immutable(불변)하여 간단하게 사용이 가능하다. - 동기화에 대해 신경쓰지 않아도 된다. Thread-safe하다. (= 내부 데이터를 자유롭게 공유 가능하다) - String 객체는 한번 생성되면 할당된 메모리 공간이 변하지 않는다. +연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 게 아님. -> 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장, 그 객체를 참조하도록 함 -> String 클래스 객체는 Heap 메모리 영역(가비지 컬렉션이 동작하는 영역)에 생성된다. 따라서 한 번 생성된 내부 내용을 변화시킬 수 없다. -> 기존 객체가 제거되면 ..
jQuery란? - 엘리먼트를 선택하는 강력한 방법과 선택된 엘리먼트들을 효율적으로 제어할 수 있는 다양한 수단을 제공하는 자바스크립트 라이브러리(=자주 사용하는 코드들을 재사용할 수 있는 형태로 가공해서 프로그래밍 효율을 높여주는 코드들) 기본 Syntax $(selector).action() ex) $(this).hide() - 해당 요소를 숨긴다. $("p").hide() - p태그를 숨긴다. $(".test").hide() - class가 test인 요소를 숨긴다. $("#test").hide() - id가 test인 요소를 숨긴다. jQuery 기본 작성문 문서가 완전히 로드되기 전에 어떤 jQuery 코드도 실행되지 않도록 하는 것. = 문서가 완전히 로드되고 준비될 때까지 기다린다. $(do..
객체 지향 정의: 의존성 관리 => 객체지향으로 의존성을 관리함으로써 변경 영향을 최소화하고 독립적인 배포가 가능해지며 독립적인 개발이 가능해짐 => 따라서 객체 지향에서 가장 중요한 것은 DIP(Dependency Inversion Principle)를 통한 고수준 정책(High Level Policy)와 저수준 구현 세부사항(Low Level Details)의 분리라고 할 수 있음 객체지향 언어 주요 특징 1. 코드의 재사용성이 높다. - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. - 제어자와 메서드를 이용해서 데이터를 보..
JAVA의 원시타입(자료형) 1byte = 8bit 크기 1 byte 2 byte 4 byte 8 byte 자료형 byte short int long boolean char float double 접근 제어자의 종류 private - 해당 클래스 내에서만 접근 가능 default - 해당 패키지 내에서만 접근 가능 protected - 상속한 클래스 내에서만 접근 가능 public - 전체 영역에서 접근 가능 접근제어자를 사용하는 이유? - 외부에 보여주고 싶은 정보들을 선택적으로 제공하지 위함(캡슐화) 원시타입과 참조타입 원시타입(Primitive Type)? - Java에서 8개(위의 표) 밖에 존재하지 않는 타입. - 실제 데이터(값)을 저장하는 타입 - 멤버변수 초기화 시, 기본 값을 가짐 참조타..