![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw7skT%2FbtqWWtsNoXh%2FHLhFhL9EmjFPc5WKj86rdk%2Fimg.png)
소프트웨어 생명 주기 소프트웨어 생명 주기(Life Cycle)는 소프트웨어 개발 방법론의 바탕. 운용 유지보수 등의 과정을 단계별로 나눈 것. 각각의 개발 단계와, 주요 활동 및 결과를 산출물로 표현하였다. 생명 주기를 표현하는 형태를 생명 주기 모형, 프로세스 모형, 공학 패러다임이라고 한다. 1) 폭포수 모형 가장 오래된 프로세스 모형으로 폭포처럼 선형적으로 진행. (고전 모형) 각 단계를 완전히 끝낸 후에 다음 단계로 넘어감. (역행, 병렬 불가능) 각 단계별 직능 중심의 조직이기 때문에, 결과물을 명확히 정의해서 각 단계의 정보를 다음 단계로 넘겨야 함. 또한 메뉴얼 역시 작성해야 함 장점 : 모델이 단순하여 이해하기 좋음, 각 단계가 명확하여 관리 쉬움 -> 대규모 프로젝트에 적합 단점 : 이..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4wiFS%2FbtqW8HCDVQ6%2Fzk4M2ulVHbTd6fkqKXaYw1%2Fimg.png)
문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72411 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 스카피는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqSnF7%2FbtqV2alYrvY%2FcgTJAL2h9XsGdn50phv9b1%2Fimg.png)
문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72410 문제 설명 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAr7vy%2FbtqVkKvwCf8%2FssHY3JyvD9k7SXtom7bsO1%2Fimg.png)
RNN (Recurrent Neural Network) RNN은 연속적인 데이터셋을 처리하기 위해 등장하였다. 예를 들어 문장의 경우 연속적인 단어로 이루어져 있고, 이를 처리하기 위해 RNN과 같은 시퀀스 모델이 등장하게 되었다. 가장 기본적인 RNN의 특징은 이전 계산 값을 다시 다음번의 학습에 사용하는 것이다. 간단하게 그림으로 표현하면 위와 같은데, 이전 학습값을 기억했다가 다음 학습에 적용하는 모습이다. 이때 이 이전의 값을 저장하는 역할을 하는 은닉층을 메모리 셀, RNN 셀이라 표현하고 이 값을 은닉 상태(hiddens state)라 한다. RNN은 입력과 출력의 길이를 다르게 할 수 있다는데, 이를 활용해 다양한 형태로 변형시킬 수 있다. 우선 Many to One과 같은 형태는 연속된 데..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVJPaJ%2FbtqVbuNowlb%2FTR23PYwLpZALjqQTbZqSmk%2Fimg.png)
문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀 programmers.co.kr 문제 설명 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀에 편입될 수 있었고, 대망의 첫 프로젝트를 맡게 되었다. 그 프로젝트는 검색어에 가장 잘 맞는 웹페이지를 보여주기 위해 아래와 같은 규칙으로 검색어에 대한 웹페이지..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWZmPa%2FbtqUtWw6Ypm%2FdRBpnFv80yLKF2hFzfVPB1%2Fimg.png)
문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42892 문제 설명 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되도록 구성한 후, 순회 방법을 힌트로 주어 각 팀이 스스로..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUAsrt%2FbtrpPEzt8R6%2F6AGpZglH0hzBmkyfao8lw1%2Fimg.png)
설치, 환경변수 설정 MYSQL 홈페이지에 접속해서 -> https://dev.mysql.com/downloads/installer/ OS에 맞게 다운로드한다. 설치가 끝나면 환경변수 설정을 해준다. 내컴퓨터 속성 > 고급시스템설정 > 환경변수 여기서 시스템변수에서 path에 MYSQL SERVER 설치 경로를 추가해준다. 설치시 기본 경로는 C:\Program Files\MySQL\MySQL Server 8.0\bin이다. 환경변수가 잘 설정되었는지 확인하기 위해서, cmd로 명령 프롬포트를 킨 다음 mysql --version으로 확인해본다. 이제 mysql에 접속은 다음과 같이 한다. mysql -u root -p >>Enter password: 이때 Password는 초기에 서버 설치 시설정한 비..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGG5d%2FbtqTF3DytYz%2FdUndv8xEBFmH21mnl6cZi1%2Fimg.png)
문제 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 문제 설명 로봇개발자 무지는 한 달 앞으로 다가온 카카오배 로봇경진대회에 출품할 로봇을 준비하고 있습니다. 준비 중인 로봇은 2 x 1 크기의 로봇으로 무지는 0과 1로 이루어진 N x N 크기의 지도에서 2 x 1 크기인 로봇을 움직여 (N, N) 위치까지 이동 할 수 있도록 프로그래밍을 하려고 합니다. 로봇이 이동하는 지도는 가장 왼쪽, 상단의 좌표를 (1, 1)로 하..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeJDvdT%2FbtqTxCS4whc%2F3DuHcIPgUaeUM704ElJQNk%2Fimg.png)
아이디나 비밀번호 입력, 이메일 입력 등에서의 제약조건 (대,소문자,10글자 등)은 보통 js나 jquery로 Client에서 수행하는데, 이 작업을 서버(JAVA)단에서도 할 수 있는 것이다. 폼에서 전달되는 데이터를 위의 커맨드 객체(데이터 객체)에 담아 컨트롤 객체에 전달하는데, 이때 유효성 검사를 할 수 있다. Validator 인터페이스 유효성 검사를 수행해주는 객체는 다음과 같다. 우선 Validator 인터페이스를 구현하는 클래스를 만든다. validate는 유효성 검사, supports는 지원하는지에 대해 체크하는 메소드이다. Error 객체의 rejectValue 메소드를 통해 에러정보를 추가할 수 있다. public class MemberValidator implements Valida..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbWQIY%2FbtqTxDcONSQ%2F6fa3EfpzSpKQfcWse5MKW1%2Fimg.png)
본 게시글은 Seoul wiz의 신입SW인력을 위한 실전 자바(Java) 스프링(Spring)을 참고하여 작성한 글입니다. Form태그, 즉 View의 데이터를 Server로 주고 받는 방식에 대해 알아보자. HttpServletReqest HttpServletRequest에 사용자가 요청한 데이터가 남겨 있고, 이를 통해 데이터를 주고 받을 수 있다. 우선 home.jsp에 다음과 같이 id와 pw를 입력받아 제출할 수 있는 양식을 만든다. action을 보면 /com/sample로 request하게 하였고, post방식을 사용하였다. 로그인 이제 Controller를 살펴보면, HttpServletRequest 객체를 받아 id와 pw에 해당하는 파라미터를 처리하고, 결과페이지로 전송함을 확인할 수 ..
Comment