profile
공부한 내용을 정리한 블로그입니다 & 백엔드 개발자
post-thumbnail

[Java] - 메모리구조

자바 프로그램이 실행되면 JVM은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리를 한다. JVM의 메모리 공간은 크게 Method(Static), Stack, Heap 영역으로 구분되고 데이터 타입에 따라 각 영역에 나눠서 할당 되

2024년 5월 29일
·
0개의 댓글
·

알고리즘-퀵정렬(Quick Sort)

퀵 정렬은 분할 정복 방법을 통해 주어진 배열을 정렬한다. 즉, 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다.불안정 정렬에 속하며, 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬에 속한다. 배열 가운데서

2024년 5월 24일
·
0개의 댓글
·

디자인패턴(2) - 템플릿 메소드 패턴

GoF의 디자인 패턴에 의하면, 템플릿 메소드 패턴이란 알고리즘의 구조를 메소드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의 하는 패턴이다. 알고리즘이 단계별로 나누어 지거나, 같은 역할을 하는 메소드 이지만 여러곳에서 다른 형태로 사용이 필

2024년 5월 14일
·
0개의 댓글
·

디자인패턴(1) - 어댑터패턴, 싱글톤패턴

디자인 패턴이란 일종의 설계 기법이며, 설계 방법이다.목적 : SW 재사용성, 호환성, 유지 보수성을 보장특징 : 아이디어이며, 특정한 구현이 아니다 / 프로젝트에 항상 적용해야 하는것은 아니지만, 추후 재사용, 호환, 유지 보수시 발생하는 문제 해결을 예방하기 위해

2024년 5월 3일
·
0개의 댓글
·

MSA란?

MSA는 소프트웨어 개발 기법 중 하나로, 애플리케이션 단위를 '목적'으로 나누는 것이 핵심이다.MSA가 도입되기 전, Monolithic 아키텍처 방식으로 개발이 이루어졌다. Monolithic은 '한 덩어리'에 해당하는 구조로 이루어져있다. 즉, 모든 기능을 하나의

2024년 5월 2일
·
0개의 댓글
·

백엔드 개발자의 필수 역량, 배포 자동화

배포 자동화는 개발자가 반복적인 배포 과정에서 발생할 수 있는 오류를 줄이고, 더 빠르고 안정적인 서비스 제공을 가능하게 한다. 대표적인 도구로는 Jenkins, Travis CI, GitHub Actions 등이 있다. 예를 들어 GitHub Actions는 Git

2024년 4월 28일
·
0개의 댓글
·

알고리즘 - 버블정렬, 선택정렬, 삽입정렬

✅ 버블정렬 > 버블정렬(Bubble Sort) : 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘이다. (맨 오른쪽부터 최대값을 채워넣어 점점 줄인다) 동작과정 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소

2024년 4월 25일
·
0개의 댓글
·

[Java] - Thread(동기화)

이전 포스팅에서 스레드에 대한 기초 개념을 알아보았다. 여기서 멀티스레드로 구현을 하다보면, 동기화는 때에 따라 필수적이다. 여러 스레드가 같은 프로세스 내의 자원을 공유하면서 작업할 때 서로의 작업이 다른 작업에 영향을 주기 때문에 이와같은 상황엔 동기화가 필수적이다

2024년 3월 30일
·
0개의 댓글
·

[Java] - Thread

스레드 설명에 앞서 프로세스는 무엇일까? 프로세스는 독립적인 실행 단위이고, 스레드는 프로세스 내에서 실행되는 실행흐름이다. 스레드는 프로세스 내에서 동시에 실행될 수 있으므로 프로그램의 성능을 향상시키는 데 사용할 수 있음.대용량 데이터의 분할 병렬 처리애플리케이션의

2024년 3월 29일
·
0개의 댓글
·

[DB] - 튜닝,클러스터링,리플리케이션

DB 튜닝이란 DB의 구조나, DB 자체, 운영체제 등을 조정하여 DB 시스템의 전체적인 성능을 개선하는 작업튜닝은 DB 설계 튜닝 -> DBMS 튜닝 -> SQL 튜닝 단계로 진행DB 설계 튜닝(모델링 관점)DB 설계 단계에서 성능을 고려하여 설계데이터 모델링, 인덱

2024년 3월 27일
·
0개의 댓글
·

코테-3(Python)

스택 자료구조 > 먼저 들어온 데이터가 나중에 나가는 선입후출의 자료구조 --> 쌓는 개념 입구와 출구가 동일한 형태로 스택을 시각화 파이썬에서의 스택은 리스트이다. stack=[] # 스택선언 삽입 : .append(원소값) , 삭제 : .pop() - 맨 마지막

2024년 3월 21일
·
0개의 댓글
·

코테-2(Python)

arr = 'a','b','c','d'print('',join(arr))abcdjoin 함수를 쓰면 리스트를 문자열로 변환할 수 있다.추가로 ,''사이에 어떤 기호를 넣어주면 리스트의 각 요소와 요소 사이에 추가된다.print('/',join(arr))a/b/c/d

2024년 3월 20일
·
0개의 댓글
·
post-thumbnail

[DB] Lock & Elastic Search

DB Lock은 트랜잭션 처리의 순차성을 보장하기 위한 기법\-공유락(LS) Read Lock라고도 하는 공유락은 트랜잭션이 읽기를 할 때 사용하는 락이며, 데이터를 읽기만하기 때문에 같은 공유락 끼리는 동시에 접근 가능\-배타락(LX)Write Lock라고도 하는 베

2024년 3월 15일
·
0개의 댓글
·

[DB] Trigger, Index에 대하여

트리거는 특정 테이블에 대한 이벤트에 반응해 INSERT, DELETE, UPDATE와 같은 DML 이 실행되었을 때, DB에서 자동으로 동작하도록 작성된 프로그램사용자가 직접 호출하는 것이 아닌, 데이터베이스에서 자동적으로 호출한다는 것이 큰 장점Index란 tabl

2024년 3월 13일
·
0개의 댓글
·

[DB] 제 52회 SQLD 응시

SQL 개발자(SQLD\*, SQL Developer)란 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 응용 소프트웨어를 개발하면서 데이터를 조작하고 추출하는데 있어서 정확하고 최적의 성능을 발휘하는 SQL을 작성할 수 있는 개발자를 말한다. 전체적으로 기본개념들

2024년 3월 10일
·
0개의 댓글
·
post-thumbnail

[Network] JWT에 대하여(+쿠키,세션)

서버가 클라이언트를 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지가 있다. 쿠키는 key = value 형식의 문자열 데이터 묶음이며 브라우저는 이 문자열 데이터 조각들을 저장해 놓았다가 동일한 서버에 재요청할 때 쿠키 데이터를 전송한다. 쿠키는 주로

2024년 2월 29일
·
0개의 댓글
·

[IntelliJ] IntelliJ 'Cannot resolve symbol * ' 에러

예전에 했던 프로젝트의 코드를 볼일이 생겨서 오랜만에 들어가봤더니 온통 "Cannot resolve symbol.. " 이런 에러가 무수히 나왔다.해결 방법은 다음과 같다.Gradle Refresh 실행 (나는 이걸로 해결했다.)캐시를 지우고 다시 실행빌드를 다시한다.

2024년 2월 24일
·
0개의 댓글
·

Java -Optional API

개발할때 가장 많이 발생하는 예외 중 하나가 NullPointerException(NPE)이다.이를 피하려면 NULL 여부 검사를 필수적으로 해야하는데 만약 NULL 검사를 해야하는 변수가 많은 경우 가독성이 떨어진다. 하지만 Java8에서 부터 Optional<

2024년 2월 12일
·
0개의 댓글
·

Java -try-with-resources

try-with-resources는 try-catch-finally의 문제점(가독성, 실수 가능성, 자원누수)을 보완하기 위해 나온 개념try( ... ) 안에 자원 객체를 전달하면, try 블록이 끝나고 자동으로 자원 해제 해주는 기능따로 finally 구문이나 모든

2024년 2월 12일
·
0개의 댓글
·

Java -Error vs Exception (throw&throws)

Error : 일반적으로 프로그래머가 처리할 수 없는 심각한 오류 , 컴파일 시점에 체크 불가능, 발생하면 프로그램은 비정상 종료되며 예측 불가능한 UncheckedException에 속한다 ex) 메모리 부족, 스택 오버플로우 등 Exception : Error보다

2024년 2월 9일
·
0개의 댓글
·