공부 73

[React] useEffect의 동작 알아보기 (Side Effect)

당신은 리액트를 쓰면서 useEffect를 얼마나 사용하는가?useEffect는 React 컴포넌트에서 side effect를 처리하는데 너무나도 중요하게 사용되는 훅이다. useEffect에 대해서 알아보려면 side effect에 대한 이야기부터 차근차근 밟아가야 한다. Side Effect란?간단하게 한국어로 번역하면 부수효과라는 뜻으로 함수나 표현식의 실행 결과 외에 발생하는 영향을 말한다. 우리가 일반적으로 프로그래밍을 할 때에는 함수나 표현식의 결과값을 반환하는 것을 기대한다. 하지만 예상한 결과 값 외에도 외부 상태를 변경하거나 다른 부작용을 발생시키는 경우가 있다. 이런 외부 상태의 변경이나 부작용을 Side Effect라고 부른다. 보통 비동기적으로 처리되는 효과들을 Side Effect..

공부/FrontEnd 2023.06.11

[SQL] 코딩 테스트를 위한 SQL 정리

관계형 DB관리 시스템인 MySQL을 사용합니다. 코딩 테스트 전 알아야 할 SQL 문법들에 대해 정리합니다. 간단하게 DB 다루기기본적으로 DB 안에는 여러 개의 이름이 존재하고, 각 DB 이름 안에는 여러 개의 테이블이 있습니다. 보통의 코딩 테스트 문제에서는 테이블을 1개에서 많으면 3개까지 제공하여 문제를 해결합니다. DB와 테이블 생성하기MySQL에서는 CREATE 문을 활용하여 DB와 테이블을 만들 수 있습니다.CREATE DATABASE {DBNAME}USE {DBNAME}DBNAME 공간에 원하는 이름을 넣으면 그 이름을 가진 데이터 베이스가 생성됩니다. 생성한 데이터 베이스 사용을 위해 USE를 사용하여 데이터베이스를 선택할 수 있습니다.CREATE TABLE Test( ID INT..

공부/BackEnd 2023.02.13

[동아리] 메가톤 2023(Feat. 인제생 앱)

메가톤이란? 먼저 메가콘은 학과 동아리 메가브레인과 해커톤을 합친 합성어로 학과 동아리 내에서 진행한 작은 해커톤이라고 생각하면 좋겠다. 우리 해커톤은 동아리원들 개발 사기 증진을 목적으로 개최된 간단한 행사이다. 메가톤은 기획 1주일, 개발 시간은 24시간으로 구성 되어 실질적인 코딩은 24시간 안에 이뤄지는 과정이다. 우리 팀이 만든 프로덕트 사실 출시를 하지 않기 때문에 이름을 정확히 정하진 않았는데, 시대생이라는 애플리케이션을 보며 우리가 계속 구상해 오던 앱이었기 때문에 별칭(?) 정도로 인제생이라고 지어줬다. https://devung.notion.site/2023-eb0fa635e58f46b3bc03bb41145a6980 메가톤 2023 상상을 실제로 만들어 내는 즐거움, 메가톤 2023 d..

[자료구조] 분리 집합, Union-Find에 대해서 알아보자!

분리집합(Union-Find)은 그래프 알고리즘 중 하나로 코딩 테스트 킬러 문제로 주로 나오는 알고리즘입니다. 서로소 집합일단 유니온 파인드 알고리즘을 알기 전 disjoint sets을 먼저 이해해야 하는데요, 쉽게 설명하면 공통 원소가 없는 두 집합을 뜻합니다. 아래 그림을 보시면 왼쪽은 서로소 집합을 나타내고 오른쪽은 공통된 7이라는 원소 때문에 서로소 관계가 깨지게 됩니다. 따라서 왼쪽은 서로소 집합, 오른쪽은 서로소 집합이 아니게 되는 것이죠. Union-Find는 서로소 집합 자료구조를 만들 수 있습니다. 집합에서 노드들을 합치고(Union), 부모를 찾아(Find) 서로소 집합을 찾아내는 알고리즘인 것이죠. 한마디로 DSU(Disjoint Sets Union) 자료구조를 만들어 내는 과정..

공부/CS 공부 2023.02.03

[자료구조] 힙 자료구조인 heapq에 대해 알아보자!

힙의 개념힙은 완전 이진트리로 구성된 자료구조이다.우선순위 큐를 위해 만들어진 자료구조이다.힙 자료구조로 우선순위 큐를 구현할 때 삽입 삭제 모두 O(logN) 연산을 가진다.최소 힙: 부모 노드의 값이 자식노드의 값보다 항상 작은 힙최대 힙: 부모 노드의 값이 자식노드의 값보다 항상 큰 힙위 사진과 같이 항상 완전 이진트리로 구성되어 최소 최대 값을 빠르게 찾아낼 수 있도록 설계되어있다. heapq 모듈파이썬에선 heapq 모듈을 이용하여 최소 힙과 최대 힙 모두 구현할 수 있다. heapq 메서드heappush(heap, item)힙 불변성을 유지하면서 item 값을 heap으로 푸쉬한다.heapq.heappop(heap)힙 불변성을 유지하면서, heap에서 가장 작은 항목을 pop 하고 반환해 ..

공부/CS 공부 2023.01.26

[자료구조] 파이썬 자료구조의 꽃 deque에 대해 알아보자!

최근 알고리즘 테스트 공부를 위해서 파이썬을 꽤나 자주 이용하는데, 문제에서 빈번하게 사용되는 deque에 대해서 알아봅시다! Deque, 왜 쓰나요?먼저 주 언어가 Javascript였던 제가, 파이썬으로 알고리즘을 하게 된 가장 큰 이유가 바로 deque의 유무였습니다. 자바스크립트에서 후입선출 방식의 Queue나 양쪽에서 삽입 삭제가 가능한 Double-ended Queue 같은 자료구조를 구현하기 위해선, 링크드리스트를 거의 필수로 사용해야 했습니다. 예를 들어 1, 2, 3이 있는 배열을 큐 방식으로 넣고 뺀다고 생각해 봅시다.1, 2, 3에서 가장 먼저 들어왔던 1의 값만 뺀다고 생각 해봅시다. 그럼 1을 빼기 위해서, 뒤에 있는 모든 index들이 한 칸 앞으로 와야 하는 귀찮은 일이 발생합..

공부/CS 공부 2023.01.17

[알고리즘] DFS와 BFS

알고리즘 공부를 하는 중에 그래프 탐색 파트를 공부하기 시작해서 짚고 넘어가는 것이 좋겠다고 생각하여 DFS와 BFS를 알아보고, 파이썬으로 구현까지 해본다. DFS (Depth-First Search)깊이 우선 탐색이라고 부르고 그래프에서 깊은 부분을 우선 탐색하는 알고리즘이다.갈 수 있는 한 맨 밑까지 탐색하여 리프노드(맨 아래 노드)를 방문하고, 이전 갈림길에서 선택하지 않은 노드들을 방문하는 식으로 탐색한다.방문 위치를 기록 하는 스택을 이용하여 해결 할 수 있다.또는 재귀로 해결 할 수 있다.스택 방식 동작 과정탐색 시작 노드를 스택에 삽입하고 방문 배열에 방문 했다고 표시한다.스택의 최상단 노드에 방문 하지 않은 인접 노드가 있으면 해당 노드를 스택에 넣고 방문 처리를 한다.만약 방문하지 않은..

공부/CS 공부 2023.01.11

[Java] 명품 자바 프로그래밍 14장 실습문제 (1~6)

1번 import javax.swing.*; public class Chapter14 extends JFrame { public Chapter14() { setTitle("메뉴 만들기"); setDefaultCloseOperation(3); createMenu(); setSize(300,200); setVisible(true); } private void createMenu() { JMenu fileMenu = new JMenu("파일"); JMenu editMenu = new JMenu("편집"); JMenu viewMenu = new JMenu("보기"); viewMenu.add(new JMenuItem("화면확대")); viewMenu.add(new JMenuItem("쪽윤곽")); JMenu in..