본문 바로가기

전체 글

spring 5주차 - section 6 웹 MVC웹 개발에서 사용하는 소프트웨어 디자인 패턴 (model, view, controller로 구성됨)model: 웹 어플리케이션의 데이터, 비즈니스 로직 처리view: UI를 구성controller: 사용자 입력을 처리하고, model과 view를 연결먼저 요청이 오게 되면 스프링 컨테이너에서 관련 컨트롤러를 찾고, 없으면 static 파일을 찾도록 동작을 진행한다. home.html// HomeController@Controllerpublic class HomeController { @GetMapping("/") public String home() { return "home"; }}controller 디렉토리에 HomeController 파일에서 Controller.. 더보기
spring 4주차 - section 5 스프링 빈과 의존 관계스프링 빈(Bean)은 컨테이너에 의해 관리되는 객체를 의미한다.어플리케이션이 돌아가는데 필요한 객체를 컨테이너에 등록을 하고 등록된 빈(Bean) 사이에 의존 관계를 설정해야한다.Spring bean으로 등록하기 위해서는 Annotation(@Repository, @Component, @Service, @Controller)와 같은 기능을 클래스 선언 이전에 붙임으로써 지정을 할 수 있다.  해당 그림에서는 스프링 컨테이너에 3개의 bean 객체(memberController, memberService, memberRepository)가 존재한다. memberRepository는 memberService에 그리고 memberController에 각각 의존되어 있는 것을 볼 수 있다.. 더보기
spring 2,3주차 - section 3,4 정적 컨텐츠웹 브라우저의 요청이 있을 때, 서버에서 파일을 그대로 웹 브라우저에게 전달하는 방식 Hello-static.html을 요청할 경우 내장 톰켓 서버를 거치고 스프링에 hello-static 과 관련한 컨트롤러가 없기 때문에 리소스에서 hello-static.html을 찾은 후 그대로 웹 브라우저에게 반환을 해줌// main/java/controller/Controller.javapublic class Controller { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "spring!!"); return "hello"; }}// main/resources/stat.. 더보기
자료구조 스터디 week 6 - 재귀 재귀함수 내부에서 자기 자신을 호출하는 함수, Recursion등차수열, 팩토리얼, 피보나치 수열 등 많은 알고리즘을 재귀적으로 표현할 수 있다// 등차수열public int seq(int n) { if (n == 1) return 1; else return seq(n - 1) + 3;}// 피보나치public int fib(int n) { if (n == 1 || n == 2) return 1; else return fib(n-1) + fib(n-2);}  하노이의 탑하노이의 탑도 재귀적으로 구현할 수 있다a, b, c 3개의 기둥이 있고, 이 3개의 원반을 기둥 b로 옮겨야 하는 작업을 재귀적으로 구현 하노이의 탑을 재귀적으로 표.. 더보기
자료구조 스터디 week5 - 큐 큐(Queue)입장을 위해 줄 서는 모습, 대기열과 같이 먼저 들어온 데이터가 먼저 나가는 방식으로 실행되는 자료구조따라서 선입선출(FIFO)의 특징을 가진다.- 후입선출(LIFO) 특징을 가지는 스택과는 대비되는 개념이다. 배열 자료형을 이용하며, 변수 front와 tail을 통해 큐에 있는 자료를 추가 혹은 삭제할 수 있다.물론 큐의 최대 크기를 예상할 수 있는 경우에는 배열이 가장 효율적이지만, 작업 과정에서 배열의 크기를 예상할 수 없는 경우 배열의 크기를 재할당 받아야하는 단점이 존재한다. 배열을 이용한 큐 구현ADT 큐에는 4개의 필드 queue[], numItems, front, tail이 있고, 5개의 함수가 있다.예) enque(x), dequeue(), front(), isEmpty().. 더보기
GDSC/GDG 오리엔테이션 - 환경 설정 GDSC 시작이번 GDSC 4기에 지원하였고, 나름 면접을 잘봤다는 평가를 받고 GDSC Back-end 파트에 합격하였다.사실 면접을 보고 나올때만 해도 긴장이 돼서 못봤다는 생각이 자꾸 들었었다. 기존에 백엔드와 관련된 프로젝트 경험이 없을 뿐더러, 웹 페이지를 만들어 본거라곤 php와 mysql로 게시판 CRUD를 한게 전부였다. 그것도 제대로 만들지 못해 취약점 투성이어서 어디 프로젝트라고 내놓지도 못하는 웹사이트다. 그래도 간단한 기술 질문같은 것은 답변 할 수 있었고, 운이 좋게 붙었다고 생각한다. 웹 개발 관련 다른 프레임워크를 다뤄보고 싶어서 지원한만큼 최대한 열심히 활동하려고 한다. OT이번 세션에서는 앞으로의 Backend 스터디 진행 방향과 8주간 만들어야할 프로젝트에 대해 설명을 들.. 더보기
NoSQL, NoSQL Injection 기초 NoSQL이란?No-relational DBMS(NoSQL, NRDBMS)는 영문 그대로 관계형 데이터베이스가 아닌 데이터베이스를 의미한다RDBMS는 테이블간의 관계를 이용하여 데이터를 저장하는 반면, NoSQL은 RDBMS와 달리 고정된 스키마 없이 유연한 방식으로 데이터를 정리할 수 있어, 간단한 작업에 매우 유용하다 대표적으로 MongoDB, Reddis, CouchDB가 있다 MongoDBMongoDB는 JSON(Javascript 객체 표기법) 형태로 자료를 저장하며 많은 데이터를 유연하고 쉽게 저장할 수 있는 NoSQL이다. MongoDB의 특징스키마를 따로 정의하지 않아 각 컬렉션(Collection)에 대한 정의가 필요없다JSON 형식으로 쿼리를 작성할 수 있다_id 필드가 Primary .. 더보기
모의해킹 결과 보고서(Final Test) 파일명 : 2024090711_protruser_모의해킹결과보고서.docx작성일 : 2024.09.07 ~ 2024.09.08 총평 일부본 애플리케이션[Final-Test]은 로그인 기능이 존재하며, 게시판의 주요 기능은 로그인을 통해 인가가 된 사용자만 이용이 가능하도록 설정해둔 시스템임을 확인했습니다. 사용자의 정보 탈취 및 권한 획득이 공격의 포인트로 판단하였고, 모의 해킹 결과 총 22개의 취약점이 발견되었습니다. 피드백1. 파이널 테스트 당시 증적 사진을 충분하게 찍지 않아 보고서 작성 과정에서 일부 생략된 부분이 존재 -> 각 웹 사이트마다 페이지 전체 사진을 찍어두어 따로 폴더에 보관해야함 2. 보고서 작성 시 충분한 시간을 두지 않아 보안 조치 방안 작성 미흡 -> 취약점 및 해결 방안에 .. 더보기