본문 바로가기

분류 전체보기

(92)
[TIL] 항해99 Day 15 항해 15일차 Spring 기본 개념만 익히고 개인 프로젝트에 들어갔다. 하지만... 많이 부족하다. 했던걸 계속 보고 구글링의 연속이다. 반복하다 보니 조금은 데이터들이 어떻게 오고가는지 어느정도 이해가 된다. 1. 프로젝트 개요 ✅ 서비스 구현 전체 게시글 목록 조회 페이지 제목, 작성자명, 작성 날짜를 조회하기 작성 날짜 기준으로 내림차순 정렬하기 특정 게시글을 클릭할 경우 게시글 조회 페이지로 이동하기 게시글 작성 페이지 제목, 작성자명, 작성 내용을 입력하기 "글쓰기" 버튼을 클릭하면 전체 게시글 목록 조회 페이지로 이동하고, 최신 게시글이 최상단에 위치함을 확인하기 게시글 조회 페이지 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기 ✅ AWS 배포 RDS 연결 MySQL을 이용하기 EC2 ..
[TIL] 항해99 Day 13 항해 13일차 1. RDBMS RDBMS(Relational DataBase Management System)은 컴퓨터에 정보를 저장하고 관리하는 기술 2. JPA JPA는, SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제할 수 있도록 해주는 번역기 JPA가 자바로 DB를 사용하도록 도와준다. domain(table) 패키지안에 java 클래스를 만들어준다. @NoArgsConstructor // 기본생성자를 대신 생성해줍니다. @Entity // 데이터베이스 기준으로 테이블임을 나타냅니다. public class Course { @Id // ID 값, Primary Key로 사용하겠다는 뜻입니다. @GeneratedValue(strategy = GenerationType.AUTO) // 자동 증..
[TIL] 항해99 Day 12 항해 12일차 알고리즘 주차를 마무리 하고 본격적으로 spring을 시작하게 되었다. spring시작 전 java기초 문법을 다시 상기시켰다. 생성자 public class Course { public String title; public String tutor; public int days; // 이렇게 아무런 파라미터가 없는 생성자를 기본생성자 라고 부른다. public Course() { } public Course(String title, String tutor, int days) { // this 는 "이것" 클래스 변수를 가리킨다. this.title = title; this.tutor = tutor; this.days = days; } } 위와 같이 "클래스명과 똑같은 이름을 가진 메소드를 ..
[TIL] 프로그래머스_로또의 최고 순위와 최저 순위 항해 11일차 기본 28문제를 풀면서 틈틈히 하루에 하나씩 심화 문제를 풀었다. 로또의 최고 순위와 최저 순위 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌..
[TIL] 프로그래머스_제일 작은 수 제거하기 항해 10일차 알고리즘 뭔가... 해결하면 성취감이 있다. 이게 재미를 느끼는건가? 제일 작은 수 제거하기 문제 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한사항 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 arr return [4,3,2,1] [4,3,2] [10] [-1] 입출력 예 설명 입출력 예 #1121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합..
[TIL] 프로그래머스_자릿수 더하기 항해 9일차 오늘 하루도 알고리즘 문제를 계속 풀었고, 협력사 채용 세션이 있었다. 지금까진 IT회사에서 근무 경험이 없어 모든게 새로웠고 더 의지를 다질 수 있는 계기가 되었다. 채용 세션이 끝나고 자체 모의고사가 있었다. 총 2문제였고 나는 1번을 선택하여 문제를 풀고 나왔다. 나와보니 2번 문제에 대해 많은 토론이 있어 2번 문제도 함께 풀어보았다. 자릿수 더하기 문제 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 N answer 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의..
[TIL] 프로그래머스_완주하지 못한 선수 항해 8일차 1주일간 총 40문제(기본 28문제 + 심화 12문제)를 해결하는 목적으로 팀원들과 함께 해결중이며 매일 각자 1~2개씩 본인이 구현 했던 코드를 리뷰하고 있다. 완주하지 못한 선수 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1..
[TIL] 프로그래머스_나누어 떨어지는 숫자 배열 항해 6일차 오늘도 알고리즘 문제를 풀고있다. 전에 했던게 조금씩 생각이난다. 전에도 잘하진 못했지만 다시 조금씩 손에 익히려고 노력중이다. 문제를 풀어가며 생각이 안나는 문법은 찾아보면서 하는중이다. 알고리즘을 풀어보니 역시나 어렵다.. 차근차근 하나씩 생각해보며 풀어나가는중이다.. 알고리즘은 역시 꾸준하게 해야한다. 나누어 떨어지는 숫자 배열 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다..
[TIL] 항해99 Day 5 항해 5일차 미니프로젝트를 마무리하고 [Chapter 2] 알고리즘 기초에 들어갔다. Chapter 2 부터는 또 다른 팀원들과 함께 하게 되었다. 1주일간 28문제를 풀어야 하기에 하루 4문제 이상은 풀어야 한다. 추가 12문제가 더 있어서 최대한 완벽하게 이해하고 추가 문제를 해결 해보려고 한다. 혼자 PS를 하고 다른 사람들의 코드를 들여다 보는것도 좋지만 확실히 모여서 본인들이 직접 해결 한 부분을 말로 설명해주니 더 확실히 이해가 잘 된다. 오랜만에 해보니 쉬운 문제들도 처음에 복잡하게 해결하려는 방향으로 흘러갔다. 조건문을 하나만 사용하고 반복문으로 해결하는 문제를 나는 각 조건문 마다 반복문을 넣고 있었다. PS는 확실히 자주 해야한다. 아니 매일 한개의 문제라도 풀어야 잊혀지지 않는 것 같..
[TIL] 항해99 Day 3 항해 3일차 여전히 삽질중이다. 팀원들과 아직 구현하지 못한 기능에 대해 분담하여 해결하기로 하였다. 회원가입 과정에서 입력 값들이 설정한 형식에 맞게 입력되는지, 패스워드는 해시 함수를 사용하여 암호화되어 저장되는지, 로그인 과정에서 토큰이 발행되어 쿠키에 저장이 되는지를 찾아보았다. 회원가입 function is_nickname(asValue) { var regExp = /^(?=.*[a-zA-Z])[-a-zA-Z0-9_.]{2,10}$/; //(?=.*[a-zA-Z])는 필수 입력, [-a-zA-Z0-9_.]일반적인 입력 //{2,10} 2~10자 길이 return regExp.test(asValue); } function is_password(asValue) { var regExp = /^(?=...