분류 전체보기 24

[web hacking] 2022

이 글은 작년 진행했던 웹 해킹(보안) 스터디 백업본입니다. 주로 write up 으로 이루어져 있습니다. 워게임 등의 문제 답과 풀이가 나와있기 때문에 열람에 주의하시길 바랍니다. 1) webhacking 44번 문제 더보기 Challenge 44 webhacking 44번 문제 1) 코드분석 system("echo 'hello! {$id}'"); // You just need to execute ls 이 코드를 우회시켜 ls 명령어를 실행시키면 된다라고 나와있다.(힌트) 본래는 그저 넣은 문장을 echo로 내보내는 코드이다. 단, $id = substr($id,0,5); 를 주의해야 한다. 5글자까지만 입력이 가능하다.(substr문자열 자르기) 2) 문제 풀이 방향 - escapeshellcmd()..

2022 스터디 2023.11.03

컴퓨터구조+운영체제 스터디

이 글은 지난 8월 진행되었던 컴퓨터구조/운영체제 스터디의 백업본입니다. 사용 교재: 혼자 공부하는 컴퓨터구조 운영체제 혼자공부하는컴퓨터구조+운영체제 - 예스24 www.yes24.com [컴퓨터 구조] 1단원 더보기 1단원:컴퓨터 구조 시작하기 1-1:컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조를 배워야 하는 이유 : 더 많은 이해는 개발자에게 문제 해결의 실마리 : 성능/용량/비용 의 더 깊은 수준의 고려가 가능 1-2:컴퓨터 구조의 큰 그림 정보(데이터와 명령어)를 0과 1로 표현 데이터: 컴퓨터가 이해하는 정적인 정보(숫자, 문자, 이미지, 동영상) 명령어instruction: 컴퓨터를 작동시키는 정보 컴퓨터의 핵심 부품 중앙처리장치CPU/주기억장치Memory/보조기억장치(RAM/ROM)/입출력장..

2023 스터디 2023.11.03

[웹 스터디] 미니 프로젝트: 클리커 게임

이 글은 지난 8월에 진행되었던 웹 스터디의 백업본입니다. 사이트 도안 실제 구현 사이트 게임 방식: 1. 알 모양 그림을 클릭하여 클릭수 100을 채운다. 2. 햇빛, 물, 사랑을 눌러도 클릭수가 올라간다. 3. 여러 조건에 따라 다양한 몬스터가 태어난다. - 클릭을 몇 번 했는지 - 햇빛/물/사랑을 몇 번 눌렀는지 의 조건에 따라 달라진다. 4. 왼쪽의 도감을 채운다. 체험 사이트: https://j0gea.github.io/egg_Game/ 알 키우기 게임 게임 설명: 이 게임은 알을 깨는 게임입니다. j0gea.github.io 코드: https://github.com/j0gea/egg_Game 코드 리뷰 (1) head 더보기 폰트를 사용하기 위해 google 폰트를 참조하는 코드가 적용되었다...

2023 스터디 2023.11.03

java 스터디 사전조사

용어 정도는 이해하고 가야 이야기가 되지 않을까 싶어서 하는 사전조사 Back-End 공부에서의 자바를 목표로 https://medium.com/javarevisited/the-java-programmer-roadmap-f9db163ef2c2 The 2023 Java Programmer RoadMap An illustrated guide to becoming a Java Developer in 2023 with links to relevant courses medium.com 좋은 글이다... 이것은 그러니까 전반적으로 어떤 것들을 알아야 하는지 알려주는 건데... Java 자체의 자세한 로드맵은 제공되지 않는 듯 0. Git / Linux / 자료구조와 알고리즘 / HTTP / SQL / 디자인패턴 -..

2022 스터디 2023.05.14

정렬

1. 선택 정렬 시간복잡도: O(n^2) 제자리 정렬 알고리즘 중 하나 0번째에 올 원소, 1번째에 올 원소... 이렇게 선택해 가져오는 정렬 전체중에서 가장 "작은 것" 을 계속 반복해서 비교해야 함 1. 최소값을 찾는다 2. 그 값을 맨 앞에 위치한 값과 교체한다 3. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체 '다음'에 있는 원소들 중 '가장 작은 거' 작은 순서대로 바뀐다. 비교횟수: n-1, n-2, n-3 ... 2, 1번 n번이n/2번 있는 것 n * n/2 = 1/2n^2 -> 시간복잡도가 O(n^2) -이중 선택 정렬: 한 번의 탐색에서 최솟값과 최댓값을 같이 찾는 방법. 탐색 횟수가 절반으로 줄어듬 2. 삽입 정렬 시간복잡도: O(n^2) 정렬되어 있는 부분에 새로운 원소를..

[2023] 스택/큐

1. 스택(Stack) LIFO(Last in first out) 후입선출 메소드 -[삭제 연산] pop : 맨 위의 원소 제거 -[삽입 연산] push : 맨 위에 원소 하나 추가 특징 -삽입과 제거가 맨 위(Top)에서만 일어남[삽입/삭제의 시간 복잡도 Θ(1)] 장점 -배열처럼 원소를 삭제하거나 이동했을 때 나머지 원소들이 움직일 필요가 없다. -데이터를 추가/삭제하는 시간이 짧다. -맨 위의 원소만 접근 가능 사용 사례 -재귀 알고리즘 : 데이터를 스택에 쌓아두고 재귀가 끝나고 빠져나올 때 순서대로 데이터를 꺼낸다. -후위 표기법 계산 2. 큐(Queue) FIFO(First in first out) 선입선출 메소드 -[삭제 연산] dnQueue(디큐): 맨 앞의 원소 제거 -[삽입 연산] enQ..

2022 스터디 2023.03.13

넘파이 스터디 20230308

넘파이 배열 배열(array) 리스트(list)의 차이 1. 모든 원소가 같은 자료형이어야 한다. (배열 객체 객체는 C언어의 배열처럼 연속적인 메모리 배치를 가지기 때문에 ) (원소에 대한 접근과 반복문 실행이 빨라진다.) 2. 원소의 갯수를 바꿀 수 없다. 배열을 import 해주는 게 넘파이 NumPy 백터화 연산을 지원 배열 객체는 배열의 각 원소에 대한 반복 연산을 하나의 명령어로 처리하는 벡터화 연산 리스트 객체에 곱하면 크기가 정수배 만큼 증가 x = np.array(data) x # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 2 * x # array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) array 객체 L = [0, 1, 2, 3, 4..

2022 스터디 2023.03.08

JAVA 스윙 공부

JFrame - 응용프로그램의 전체 컴포넌트 *컴포넌트(component)란 여러 개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위를 말한다. (해시넷 위키 http://wiki.hash.kr/index.php/%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8) 순수 컴포넌트 컨테이너 - 다른 컴포넌트를 포함할 수 있는 컴포넌트 Container 컨테이너 - Container 클래스를 상속받는 방식으로 사용 -컨테이너도 다른 컨테이너에 컴포넌트로 포함될 수 있다. [JFrame, JPanel, ...] 컨테이너 최상위 컨테이너 -다른 컨테이너에 속하지 않고도 독립적으로 화면에 출력될 수 있는 컨테이너(Top Level Container) JFra..

2022 스터디 2022.11.10

[5] Dynamic Programming

본 글은 https://www.programiz.com/dsa/dynamic-programming Dynamic Programming Dynamic Programming In this tutorial, you will learn what dynamic programming is. Also, you will find the comparison between dynamic programming and greedy algorithms to solve problems. Dynamic Programming is a technique in computer programming that helps www.programiz.com 요 글의 번역임을 알립니다. 문제가 되면 삭제합니다. 의역이 많습니다 Dynamic Pr..