전체 글

회고

코드스테이츠 Pre-Project 기록 (22년도 08.24~09.06)

2주간의 Stack Overflow 클론코딩을 주제로 한 Pre Project 을 진행한 기록들을 블로그에 옮겨둔다. Daily 회고 8/24 완성된 요구사항 정의서를 기반으로 테이블 명세서와 ER다이어그램을 작성해보았다. 요구사항의 각 기능에 대해 필요할 것으로 예상되는 데이터들을 컬럼으로 지정하였다. 사실 프론트엔드 측과 협의하에 어떤 데이터를 주고받을 지 결정된 후 테이블을 설계하는 것이 맞는 것으로 보인다. 하지만 요구사항 정의서 작성 시에 기능의 동작에 대한 전반적인 논의가 된 터라, 임의로 작성한 것을 프론트엔드측에서 확인했을 때 큰 문제는 없었다. 필요한 테이블들을 완성하고 테이블 간의 연간관계를 설정해주었다. 여기서 질문글의 ‘조회수'를 관리하기 위해 ‘질문'테이블에 컬럼으로 둬야할 지, ..

알고리즘/문제

[프로그래머스] Lv2 행렬의 곱셈 / JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; /* 행렬을 곱할 때는 앞선 행렬의 열과 뒤 행렬의 행이 같아야 함을 이용하자. */ for(int k =0; k

알고리즘/문제

*[프로그래머스] Lv2 2018 KAKAO BLIND RECRUITMENT[1차] 캐시 / JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/17680# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(int cacheSize, String[] cities) { /* 캐쉬는 큐를 이용한다. hit 이면 캐쉬가 변하지 안고 miss 이면 가장 먼저 들어간 도시가 변경된다. */ // if(cacheSize==0) return cities.length*5; // int answer = 0; ..

원티드 프리온보딩 백엔드 과정 (3월)

도메인과 SW 아키텍처

신입 개발자 수준에서 SW 아키텍처 까지 관심을 가지고 적용하는 경우는 많지 않은 것 같다. 나 역시도 SW 아키텍쳐를 MVC, Monolithic, 계층형 정도의 키워드로만 어렴풋이 알고 있었다. 원티드에서 프리온보딩 백엔드 과정으로 SW 아키텍처라는 주제를 진행한다고 하여 참가하게 되었다. 1. 도메인 먼저 도메인이란 무엇인가 에 대한 나의 정의는 다음과 같다. 하나의 바운더리로 묶이는 어떠한 영역 도메인에 대한 설명을 들을수록 모호한 것을 느꼈다. 하지만 결국은 단어를 직역한 것과 같이 '영역'이 핵심인 것 같다. 비즈니스를 기준으로 도메인으로 나누자면 금융, 의료, 여행, 부동산 등 여러 영역으로 나눌 수 있을 것이다. MVC 패턴에서 기능별로 도메인을 나눈것이 Model, View, Contro..

알고리즘/문제

[프로그래머스] Lv2 괄호 회전하기 / JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(String s) { /* 구현 문제인 것 같다. 큐와 스택을 이용하면 될 것 같다. */ /* 1. 큐는 문자열을 회전할 때 사용한다. 큐에 문자열을 넣고 문자열 길이-1 만큼 poll, add 반복한다. 2. 스택은 괄호가 올바른 지 검사할 때 사용한다. 큐가 반복할 때마다 스택을 통해 ..

알고리즘/문제

[프로그래머스] Lv2 멀리뛰기 / JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public long solution(int n) { /* 가장 최소의 경우 2로 나누어 떨어짐 O : 모든 칸을 2로 뛴다. 2로 나누어 떨이짐 X : 한칸 뺴고 2로 뛴다. */ /* 2222 22112 22121 22211 221111 2111111 211112 211121 211211 21122 212111 211111111 21111112 2111112..

알고리즘/문제

[프로그래머스] Lv2 점프와 순간이동 / JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; public class Solution { public int solution(int n) { /* 44 -> 22, 11-10, 5-4, 2, 1, 0 while(n>2) n을 2로 나눈다. 나머지가 2로 나누어 떨어지는 지 확인한다. o : 처음으로 x : 카운트1 증가, 나머지-1 가지고 처음으로 */ int ans = 1; while(n>2){ if..

취준일기

잡생각, 고요함과 편안함

삶과 행복에 대한 수많은 긴 고민에도 정답은 찾을 수 없었다. 내가 통제할 수 없는 것, 운명이라고 표현하고픈 것들이 분명 존재한다. 인간으로써 이해할 수 없는 것들도 존재한다. 그렇기에 정답을 찾는 것이 불가능할 뿐더러 정답이 존재하는 지 조차도 알 수 없다. 인간으로써 한계는 존재하며 이를 받아들여야만, 받아들일 수 밖에 없다. 어제 뇌과학과 커뮤니케이션학을 연구하시는 연세대학교의 김주환 교수님의 영상을 우연히 보게되었다. https://www.youtube.com/watch?v=GWFxAk1doqE 3시간짜리 유튜브 영상을 정주행해본 적은 거의 없다. 하지만 어제까지만 해도 굉장히 마음이 힘든 상태였던 나에게는 너무나도 흥미가 생기는 내용이었다. 처음부터 끝까지 말씀 하나하나 곱씹으며 듣고 알려주시..

Spring

Spring Data Jpa 의 Pagination

보호되어 있는 글입니다.

develop06
DEVELOP06