전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
DB/MySQL

[Mysql] mysql select 쿼리 실행 순 익히기, 스키마 create&drop

스키마 생성과 CREATE, DROP릴레이션 정의 및 생성create table department( deptno integer not null, deptname char(10), floor integer, primary key(deptno));create table employee( empno integer not null, empname char(10), title char(10), manager integer, salary integer, dno integer, primary key(empno), foreign key(manager) references employee(empno), foreign key(dno) references department(deptno) on delete cascade ..

CS/Network

네트워크 Forward Proxy와 Reverse Proxy란? 차이점과 역할 이해하기

포워드 프록시(Forward Proxy)란포워드 프록시는 클라이언트 앞에 위치하여, 클라이언트가 서버로 요청을 보낼 때 포워드 프록시 서버가 해당 요청을 대신 받아서 서버에게 전달해 줍니다. 이후에 서버의 응답을 포워드 프록시가 대신 받아 클라이언트에게 전달해줍니다. 간단히, 사용자들은 서버에게 요청을 보내면 이 요청들은 포워드 프록시가 받아서 원하는 외부 서버에 전달해 주고 응답 값을 대신 받아 전달해 주는 역할을 합니다.장점온라인상에서 클라이언트 신원 보호가 가능하다.캐싱 및 사용자 기능을 향상시킨다. (어느 서버에 요청을 보내야 하는지 알 필요 없음)특정 콘텐츠에 대한 액세스 차단 (방화벽 : 포워드 프록시 앞에 방화벽을 두어 민감한 콘텐츠인 경우 사전에 차단할 수 있다) 리버스 프록시(Revers..

CS/Network

[Server] WAS란 무엇인가, 웹 서버와 WAS(Web Application Server) 차이 이해하기

WAS(Web Application Server)를 이해하기 전에 예전부터 사용하고 있던 Web Server는 무엇이고, 어떤 기능을 수행했는지 파악한 다음에 WAS 서버가 왜 생기게 됐는지 순으로 정리하겠습니다. 웹서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버입니다. 💡 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠입니다. 이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해줍니다. 이러한 웹 서버에는 Apache, NginX 등이 있습니다. Web Server의 개념 소프트웨어와 ..

Python/Python

[python] 파이썬 소수 구하기, 에라토스테네스의 체 - 시간 복잡도 최적화

소수 구하기 - 에라토스테네스의 체 1부터 N까지의 수 중에서 소수를 찾으려고 할 때 모든 수를 2부터 N-1까지의 수로 나누어 결과를 찾으면 시간 초과에 걸릴 가능성이 높습니다. 소수 여부를 알 수 있는 대표적인 에라토스테네스의 체 방법을 이용해 시간 초과를 피할 수 있습니다. 2부터 N까지의 모든 자연수를 나열합니다. (1은 소수가 아님) 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾습니다. (처음 i는 2) 남은 수 중에서 i의 배수를 모두 제거합니다. (i의 배수이므로 소수가 아님 / i는 제거하지 않음) 더 이상 반복할 수 없을 때까지 2와 3번을 반복합니다. n = 100 sosu = [True]*(n+1) # 초기에는 소수로 설정 # 에라토스테네스의 체 구현 for i in ra..

CS/Database

[DB] 데이터베이스의 원칙과 ACID, RDBMS와 NOSQL의 차이점 이해하기

데이터베이스의 기본 원칙과 RDBMS와 NoSQL 차이를 이해하여 프로젝트 유형에 따라 어느 데이터베이스를 고르는 것이 효율적인지 파악하고자 합니다. 데이터베이스의 원칙 무결성 : 데이터의 정보가 변경되거나 오염되지 않도록 하는 원칙 Accuracy 데이터에 오류가 없어야 합니다. 사용자가 저장하고자 하는 내용 모두가 잘 저장되어야 합니다. Consistency 데이터베이스는 일관성이어야 합니다. 안정성 오류 발생 시 회복력(복구력)이 좋아야 합니다. 고장이 잘 나지 않아야 합니다. 확장성 Scale Up - 서버 컴퓨터 기능 향상 하기 Scale Out - 여러 서버 분산하여 처리하기 Transaction 트랜잭션을 통해 작업의 완전성을 보장합니다. 사용자의 작업셋을 모두 완벽하게 처리하거나 처리하지 ..

Spring Framework/JPA

[JPA] Spring JPA 프록시 객체와 지연로딩이란 무엇인가, 사용하는 이유

지연로딩(LAZY Loading)이란 : 지연로딩은 연관된 엔티티를 실제로 사용할 때까지 데이터베이스에서 로딩을 지연시키는 기법입니다. 예를 들어 엔티티 A와 B가 일대다 관계를 가지고 있을 때, A 엔티티를 조회하더라도 B 엔티티를 바로 로딩하지 않고, 실제로 B엔티티의 내용이 필요한 시점에 해당 엔티티를 데이터베이스에 가져오는 방식입니다. 지연로딩의 장점 및 사용하는 이유 : 불필요한 데이터를 미리 로딩하지 않아 메모리를 절약하고, 성능 향상을 이룰 수 있습니다. 주의할 점 지연로딩을 사용하면서 영속성 컨텍스트가 유지되는 시점에서 연관된 엔티티를 로딩하지 않고 사용하려고 할 때, LazyInitializaionException이 발생할 수 있습니다. 영속성 컨텍스트가 사라질 경우, Proxy 엔티티를..

Algorithm/Boj

[BOJ] 백준 5430 파이썬 - 바킹독 문제 풀이

문제 에러 코드 from collections import deque t = int(input()) # 테스트 케이스 개수 for i in range(t): p = input() # 수행할 함수 n = int(input()) # 배열의 개수 arr = input() # 배열 # '[', ']', ',' 특수 문자 제거 후 자료형 변환 num = deque(arr.split('[')[1].split(']')[0].split(',')) if num[0]=='': print('error') break for i in p: if i == 'R': num.reverse() elif i =='D': if len(num) == 0: print('error') break else: num.popleft() if num..

Algorithm/Boj

백준 1021 파이썬 풀이 - 바킹독 파이썬 문제 풀이

문제 0번째에 위치한 인덱스가 우리가 찾고 있는 숫자이면 삭제 및 출력한다. 우리가 찾는 인덱스가 아닌 경우 왼쪽으로 이동하거나 오른쪽으로 이동시켜 큐의 위치를 변경한다. 양쪽으로 입력과 출력이 일어나므로 덱의 자료구조인 deque를 사용하면 좋습니다. 코드 from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) # 큐의 크기 n 과 뽑으려는 숫자의 개수 m pos = list(map(int, input().split())) # 뽑아내려고 하는 수의 위치 q = deque(i for i in range(1, n+1)) # 큐 설정 cnt = 0 # 카운트 변수 for i in po..

kylo
오늘도 열심히 - BE