본문 바로가기

전체 글

(192)
N+1문제 N+1문제를 위해 필요한 기본 개념들에 대해 먼저 설명하겠습니다 ORM(Object-Relatonal Mapping) 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면됩니다 장점 SQL이 아닌 Method를 이용하여 DB조작할 수 있어, 비지니스 로직을 구성하는데만 집중할 수 있습니다 객체지향적인 코드 작성 가능 -> 생산성 증가로 이어집니다 DB 종류를 변경할 경우에 ORM을 사용하면 쿼리를 수정할 필요가 없습니다 JPA • JAVA에서 ORM 기술 표준으로 사용하는 인터페이스 모음입니다 • 자바에서 관계형 데이터베이스를 사용하는..
recursive(1) Recursion - 자기 자신을 호출하는 함수(메서드) - 통제를 통해 무한루프에 빠지지 않게 할 수 있다 무한통제 방지 구조 - 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야한다 -> base case - Recursion을 반복하다보면 결국 base case로 수렴해야한다 대표적인 예시 1) 팩토리얼 2) 피보나치수열 3) 최대공약수 M>=N인 두 양의 정수 M과 N에 대해서 M이 N의 배수이면 gcd(M,N) = N이고, 그렇지 않으면 gcd(M,N) = gcd(n,M%N)이다. 코드) Public static double gcd(int m, int n){ If(m 길 1-> 벽 2-> 가봤지만 목표지점까지 갈 수 없는 곳임이 확인된 곳 3-> 가봤지만 목표지점까지 갈 수 있는지 ..
Network(1) 네트워크란? - 그물망으로 연결된 경로를 통해 통신 IP주소란? - 인터넷에 연결되어 있는 모든 장치(컴퓨터, 서버 장비, 스마트폰 등)들을 식별할 수 있는 고유 주소 IP주소는 NetworkID와 Host로 구성되어있다 CIDR은 기존의 네트워크를 분할하던 클래스 개념을 없애고, 좀 더 자유롭게 본인이 원하는 NetworkID, Host ID를 나눌 수 있는 IP 주소할당 방식 서브넷마스크란? - 컴퓨터 네트워크에서 IP 주소를 서브넷으로 분할하는 데 사용되는 기술적인 요소 - IP 주소에서 어떤 부분이 네트워크 ID로 사용되고 어떤 부분이 호스트 ID로 사용되는지를 나타냄 Ex) 192.168.10.70/26 "26"은 서브넷 마스크의 길이를 나타냄. 서브넷 마스크의 길이는 서브넷 마스크에서 1로 설..
KM to Miles, Minutes to Hours 변환기 만들기 Final practice (시/분 변환기와 KM/M 변환기 동시에 작동가능하도록 ) function MinutesToHours(){ const [amount, setAmount] = React.useState(0); const [flipped, setFlipped] = React.useState(false); const onChange = (event) => { setAmount(event.target.value); //modifier }; //모든 값을 0으로 돌려주 const reset = () => setAmount(0); //현재의 상태에서 반대의 것을 설정해주는 함수 //현재 true면 false, false면 true 반환 const onFlip = () => { reset(); setFli..
State practice reRender해주는 것이 매우 비효율적이기 때문에 React의 useState문법을 사용 function App(){ const [counter, setCounter] = React.useState(0); const onCLick = () => { setCounter(counter+1); }; return( Total Clicks: {counter} Click me ); } ReactDOM.render(, root); - Counter은 숫자 설정, 그리고 그 뒤 index1번은 함수를 위치시킨다. 함수는 set+index0번의 초기숫자 이름. 함수는 modifier의 기능을 함 - 그 뒤는 동일하게 이벤트 처리하면 우리가 원하는 대로 버튼을 클릭하면 클릭한 횟수만큼 update가 됨 기존의 JavaS..
review5 preventDefault란? 이벤트와 관련된 기본 동작(새로고침)을 방지하는 기능 제출 버튼을 클릭하면 양식이 제출되지만 위 기능을 통해 방지할 수 있다 *무엇이 클릭되었는지 등 정보를 알고 싶을 땐 JS는 함수를 실행시키는 동시에 그 함수에 첫번째 인자로 object를 넣어줌 이벤트 객체를 매개변수로 받아 처리하면, 해당 이벤트와 관련된 정보를 쉽게 확인하고 원하는 작업을 수행할 수 있음 localstorage란? Local storage를 사용하면 웹 페이지에서 데이터를 유지하고 나중에 사용할 수 있음 JavaScript를 사용하여 웹 브라우저에서 데이터를 읽고 쓸 수 있으며, 사용자가 페이지를 닫고 다시 열어도 데이터가 유지됨 setItem()을 통해 정보를 저장할 수 있음 Interval란? 일..
review 4 querySelectorAll()메소드란? querySelectorAll() 메소드는 선택한 엘리먼트들을 포함하는 NodeList 객체를 반환함 이 경우, 지정된 기준에 부합하는 모든 h1 엘리먼트를 반환함 NodeList란 일련의 노드 집합으로 querySelectorAll()이나 childNodes와 같은 메소드로 반환됨 배열과 비슷한 형태를 가지고 있어 순서대로 정렬된 노드들의 목록 NodeList 객체는 읽기 전용(직접적으로 추가,삭제 불가) But 속성 수정가능 여기서 궁금한 점 왜 querySelectorAll()를 사용하면 안될까 ? 선택한 요소 중 첫 번째 요소만을 반환하지 않고, 선택한 모든 요소를 NodeList 형태로 반환 따라서 document.querySelectorAll()를 사..
review2 스케줄링 알고리즘이란? 스케줄링 알고리즘(Scheduling Algorithm)은 운영체제에서 프로세스(Process)를 어떤 순서로 실행할지 결정하는 알고리즘입니다. 운영체제는 시스템 자원을 효율적으로 사용하기 위해 프로세스들을 관리하며, 이때 스케줄링 알고리즘이 중요한 역할을 합니다. 오버헤드란 ? 오버헤드(Overhead)는 어떤 작업을 수행할 때, 그 작업 자체와는 직접적으로 관련이 없지만 추가로 필요한 비용, 시간, 자원, 또는 노력을 말합니다 NUMA란? NUMA(Non-Uniform Memory Access)는 대규모 멀티프로세서 시스템에서 메모리 접근 시간을 최적화하기 위한 아키텍처 NUMA 시스템은 여러 개의 프로세서(코어)가 메모리를 공유하는 구조 각 프로세서가 자신의 로컬 메모리에 빠..