전체 글

tech blog
1. 애자일 vs 폭포수 방법론을 적용하기 위한 구체적인 실행은 어떻게? 애자일 방법론; 반복적, 점진적, 계속해서 고객의 피드백을 받으며 개발 진행. - 스크럼: 스프린트 기반으로 애자일 방법론 실행 - 칸반: 칸반 보드를 통해 워크플로우를 가시화, 프로세스 관리 - XP: 짧은 개발 주기를 반복하며, 사용자의 요구 변화에 신속하게 대응 - TDD: 테스트 주도 개발 방법론, 선 테스트 코드 작성 -> 후 구현 - BDD: 비즈니스 중심의 행위 주도 개발 방법론, 시나리오 기반으로 테스트, 특정 기능이 '무엇'을 제공하는지에 초점. 폭포수 방법론; 선형적, 계획적, 완료된(이전) 단계로 되돌아갈 수 없다. - 계획 -> 분석 -> 설계 -> 개발 -> 시험 -> 운영/유지보수 2. 설계가 중요하다 vs..
인터페이스란 뭘까? 자바에서 인터페이스란 일종의 추상 클래스라고 보면 된다. 추상클래스처럼 추상메서드와 상수를 갖지만, 추상화 정도가 더 높아서 몸통을 갖춘 일반 메서드나 멤버 변수를 가질 수 없다. - 추상 클래스: 추상 메서드, 상수, 일반 메서드, 멤버 변수 가짐 - 인터페이스: 추상 메서드, 상수만 가짐 클래스에서 특정 메서드를 구현하도록 강제할 수 있는 기능이라고 봐도 된다. 즉, 인터페이스가 가진 모든 메서드를 구현받은 클래스가 다~~ 구현해야 한다. 클래스를 작성하기 위해 밑그림만 그려진 "기본 설계도"로 이해하면 되겠다. 인터페이스를 왜 쓰지? 동일한 목적 하에 동일한 기능을 수행하게끔 강제하기 위해서. 자바의 다형성 개념을 활용하여 개발코드 수정을 줄이고 유지보수를 쉽게 하기 위해서 인터..
처음으로 페어 프로그래밍을 해봤다. 페어 프로그래밍이란, Pair Programming. 말 그대로 짝을 맞춰 프로그래밍 한다는 뜻. 애자일 개발 방법론 중의 하나로, 하나의 컴퓨터를 가지고 두 사람이 작업하는 방법을 의미한다. 사람1의 역할: "네비게이터" - 프로그래밍의 방향을 설정하고 지시한다. 사람2의 역할: "드라이버" - 네비게이터의 지시대로 코드를 작성한다. 규칙 - 보통 5분에서 10분 간격으로 역할을 바꿔가며 진행한다. - "드라이버" 역할은 "네비게이터" 역할의 지시에 반박하지 않고 코드를 작성한다. 물론, 궁금한 점은 당연 물어볼 수 있다. 이번 페어 프로그래밍의 목적은 "둘이서 싸우지 않기" 였다. 코드를 완성하는 것도 중요하지만, 서로 대화를 통해서 생각 없이 코드를 작성하지 않는..
5. 클래스의 구성 요소 클래스의 구성 요소 필드 (Field) 메소드 (Method) 생성자 (Constructor) 자바는 무조건 클래스 안에서 함수가 쓰이고 있기 때문에, 메소드라고 칭함. 파일 하나에 코드 평균 200줄 ! JUnit - 자바의 테스트 프레임워크 메소드 클래스 안에서 사용하는 함수(특정 기능을 하는 코드 블록) 자바에서는 모든 함수가 클래스 안에 있기 때문에, 메소드로 명칭 통일. 📌 객체를 만들어내는 책이 클래스였지. 그 책 안에 적혀 있어야 하는 게 3가지. 조립하는 방법 (생성자) 부품 (필드) 완성품 기능 사용법 (메소드) → 클래스로 객체 만들 수 있지 ~!! 실습 ! 클래스 작성 순서 (필드 - 생성자 - 메소드) 참조 자료형은 결국에 객체. 객체를 담기 위한 클래스 타..
📌 목표: 자바의 기초 문법 배우기 1. 자바 개요 컴파일러 vs. 인터프리터 컴파일 언어 - 한 번에 번역해줘 (통번역) 인터프리트 언어 - 한 줄씩 바로 번역해줘 (동시통역) 자바스크립트는 인터프리트 언어! 한 줄씩 읽어주니까 굉장히 빠름 자바는 컴파일 언어! 파일 전체를 한 번에 번역하니까 느림. JVM, JDK란? 운영체제란 뭘까? : Operating System. 말 그대로 작동 시스템, 프로그램이 뛰어놀 수 있도록 하는 운동장 같은 것. 🗣️ 운영체제: 프로그램들아 내 위에서 뛰어 놀아~ C언어는 OS별로 세팅을 다르게 따로 해야 됨. -> 복잡하고 귀찮음. 반면 Java는 모든 OS 공통으로 환경 세팅 가능 -> JVM 덕분 JDK (Java Development Kit)에 있는 것들. -..
문제 링크: https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 문제 찬솔이는 블로그를 시작한 지 벌써 N일이 지났다. 요즘 바빠서 관리를 못 했다가 방문 기록을 봤더니 벌써 누적 방문 수가 6만을 넘었다. 찬솔이는 X일 동안 가장 많이 들어온 방문자 수와 그 기간들을 알고 싶다. 찬솔이를 대신해서 X일 동안 가장 많이 들어온 방문자 수와 기간이 몇 개 있는지 구해주자. 입력 첫째 줄에 블로그를 시작하고 지난 일수 N와 X가 공백으로 구분되..
· Pwnable/FTZ
명령어 정리 awk cut grep more ls -al | grep bash → 현재 디렉토리에서 bash 글자가 들어간 파일만 출력해라 ls -alp aaa → 이름이 aaa인것의 정보를 보여줘라 find 명령을 통한 소유자, 백도어, 파일 찾기 find /dev -type f → /dev/MAKEDEV 만 떠야함 (백도어 찾기) find / -ctime -1 → 하루동안 만들어진 파일 (해킹 당한 듯 싶으면 확인) find / -perm -4000 → setuid 걸린 파일을 찾는 명령어 find / -nouser → 파일에 소유자가 없는 경우의 파일 권한 관리 명령어 chmod : 파일, 디렉토리의 권한(퍼미션, 허가권)을 변경하는 역할 개별적으로 파일 권한 변경하기 u 사용자, g 그룹, o 다..
· Pwnable/FTZ
ID : level20 PW : we are just regular guys 1. 드디어 마지막이다! level20으로 로그인 하고, hint 파일을 읽어보자. 코드를 해석해보자. #include main(int argc,char **argv) //프로그램 실행과 동시에 사용자 입력을 받음 { char bleh[80]; //문자형 bleh변수에 80바이트 만큼의 크기 할당 setreuid(3101,3101); //clear 계정의 프로세스 ID fgets(bleh,79,stdin); //fgets함수로 bleh변수에 79바이트 만큼의 사용자 입력을 받음 printf(bleh); //bleh변수에 저장된 값 출력 } 해석을 참조하면, fgets 함수로 문자열을 입력받고 bleh[80]버퍼에 79만큼 입력 ..
lvolzoo
sing