일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Javascript
- 부트캠프
- 컴퓨터과학
- 프론트엔드개발자
- html/css/js
- computerscience
- 자바스크립트
- 호이스팅
- CSS
- 알고리즘
- 코딩테스트
- 야놀자
- github
- BFS
- CS
- 너비우선탐색
- 백준
- git
- cpu
- 패스트캠퍼스
- DFS
- 코테
- KAKAO
- 국비지원취업
- 국비지원
- js
- 컴퓨터공학
- LinkSnap
- nodejs
- 그리디
- Today
- Total
목록2023/10 (29)
My Boundary As Much As I Experienced
시큐어 코딩 안전한 소프트웨어를 개발하기 위해, 소스코드 등에 존재할 수 있는 잠재적인 보안약점을 제거하는 것 보안 약점을 노려 발생하는 사고사례들 SQL 인젝션 취약점으로 개인유출 사고 발생 인증함수(입력값) 입력값으로 "truthy) //주석" 같은걸 주면 인증함수(truthy) //주석) ... 로 되어 나머지 코드는 주석처리되어 뚫린다고 합니다. URL 파라미터 조작 개인정보 노출 URL파라미터에 중요한 개인정보 등이 있을 때 이를 유추하여 빼오는 기술 무작위 대입공격 기프트카드 정보 유출 Brute Force로 특정 값 유추해오기 안전하지 않은 코드 String query "SELECT * FROM users WHERE userid = '" + userid + "'" + "AND password..

클린코드 클린코드란, 가독성이 높은 코드를 말한다. 리팩토링 프로그램의 외부 동작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것을 말함 보통 코드를 유지보수하면서 동시에 클린 코드로 전환하는 것 모두 리팩토링에 해당된다. 리팩토링이 필요한 코드는? 중복 코드 긴 메소드 거대한 클래스 Switch 문 절차지향으로 구현한 코드 리팩토링 예제 1. 범용적인 이름을 쓰지않고 구체적인 이름을 쓴다. // 수정 전 public int getFoodPrice(int arg1, int arg2) { return arg1 * arg2; } // 수정 후 public int getTotalFoodPrice(int price, int quantity) { return price * quantity; } 2. 중복 ..
Props를 자손으로 쭉쭉 내려다보내다보면 props가 어디까지 보내지는지 그 깊이를 알기 어려워지는 현상. 3~4개면 어떻게든 파악을 할텐데, depth가 15개 이상이면? props가 어떻게 보내지고 있는지 파악하는 것 자체가 시간이 든다. import React from "react"; import "./styles.css"; export default function App() { return ( ); } function FirstComponent({ content }) { return ( I am the first component; | ); } function SecondComponent({ content }) { return ( I am the second component; ); } fun..

파일 시스템 - 컴퓨터에서 파일이나 자료를 쉽게 발견 할 수 있도록, 유지, 관리하는 방법이다. 즉, 저장매체에는 많은 파일이 있으므로, 이러한 파일을 관리하는 방법을 말한다. - 사용자 영역이 아닌 커널 영역에서 동작 - 파일을 빠르게 읽기, 쓰기, 삭제 등 기본적인 기능을 원활히 수행하기 위한 목적 파일 시스템 특징 - 계층적 디렉터리 구조를 가진다. - 디스크 파티션 별로 하나씩 둘 수 있다. 파일 시스템의 역할 - 파일관리 : 파일 저장, 참조, 공유 - 보조 저장소 관리 : 저장 공간 할당 - 파일 무결성 메커니즘 : 파일이 의도한 정보만 포함하고 있음을 의미 - 접근 방법 : 저장된 데이터에 접근할 수 있는 방법 제공 파일 시스템 개발 목적 - HDD와 메인 메모리 속도차 줄이기 - 파일 관리..
CPU Register 레지스터는 컴퓨터에서 가장 빠른 메모리로 CPU 내부에 존재한다. 레지스터에 데이터를 읽고 쓰는 것은 0~1 CPU 사이클이 필요하므로 약 0ns ~ 0.25ns의 지연 시간(latency)이 생긴다. 레지스터의 크기는 CPU가 32비트냐 64비트냐에 따라 다른데 요즘엔 거의 64비트 CPU를 사용하므로 레지스터 하나는 8바이트이다. 캐시 메모리 주기억장치에 저장된 내용의 일부를 임시로 저장해두는 기억장치 CPU와 주기억장치의 속도 차이로 성능 저하를 방지하기 위한 방법 CPU가 이미 봤던걸 다시 재접근할 때, 메모리 참조 및 인출 과정에 대한 비용을 줄이기 위해 캐시에 저장해둔 데이터를 활용한다 캐시는 플리플롭 소자로 구성되어 SRAM으로 되어있어서 DRAM보다 빠른 장점을 지님..
클래스형 컴포넌트 import { Component } from 'react'; export default class MyComponent extends Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); this.state = { count: 0, }; } handleClick() { this.setState({ count: this.state.count + 1 }); } render() { const { count } = this.state; return ( {count} 클릭해보세요! ); } } react 라이브러리에서 제공하는 Component를 import 받아와서 상속 관계를..
- 클래스형 컴포넌트(Class Component)의 단점을 보안하여, 함수형 컴포넌트(Functional Component)를 사용 할 수 있도록 등장한 것이 React Hook(리액트 훅) 리액트 v16.8에 새로 도입된 기능으로, 함수형 컴포넌트(Functional Component)에서 사용되는 몇가지 기술들을 일컫는다. 리액트 훅은 함수형 컴포넌트(Functional Component)가 클래스형 컴포넌트(Class Component)의기능을 사용 할 수 있도록 해주며 대표적인 예로는 useState, useEffect 등이 존재한다. 내장 Hooks - useState - useEffect - useContext 추가 Hooks useReducer (복잡한 컴포넌트들의 state를 관리 -분리..
페이지 부재 (Page Fault) CPU가 접근하려는 페이지가 메모리에 없는 상황이다. 페이지 부재 발생 시 페이지를 디스크에서 읽어봐야 하는데 이 과정에서 막대한 오버헤드가 발생한다. 필요한 페이지가 메모리에 없을 때 page-falut가 발생하고 Backing Store(보조 메모리)에서 해당 페이지를 찾아 빈 프레임에 로딩해야 하는데, 이때 빈 프레임이 없을 경우 희생 당할 프레임(victim frame)을 고르는 알고리즘이 페이지 교체 알고리즘이다. 페이지 교체 알고리즘은 page-fault 발생 비율을 줄이는 것을 목표로 한다. 페이지 교체 (Page Replacement) 페이지 부재가 발생하면 요청된 페이지를 디스크에서 메모리로 읽어와야하는데, 물리적 메모리에 빈 프레임이 존재하지 않을 수..

가상 메모리 (Virtual Mememory) 실제 메모리 크기와 관계 없이 메모리를 사용할 수 있도록 가상 메모리 주소를 사용하는 것 프로세스의 일부분만 메모리에 로드하고 나머지는 보조 기억 장치 (가상 메모리 공간) 에 둔다 Memory Fragmentation 어떠한 프로그램을 실행할 때, 컴퓨터에서는 프로그램들을 메모리 공간에 연속적으로 할당하게 됩니다. 만약 여러 프로그램들이 메모리에 할당되고 해제되는 것이 반복되다 보면 메모리 공간이 조각조각 나뉘게 되어 총메모리가 충분함에도 불구하고 프로그램에 메모리를 할당하는 것이 불가능한 상태가 발생하게 됩니다. 이러한 현상을 바로 메모리 단편화라고 하며, 이번 포스팅은 메모리 단편화 해결방법인 페이징과 세그멘테이션에 대해 알아보도록 하겠습니다. Memo..