2주간의 Stack Overflow 클론코딩을 주제로 한 Pre Project 을 진행한 기록들을 블로그에 옮겨둔다. Daily 회고 8/24 완성된 요구사항 정의서를 기반으로 테이블 명세서와 ER다이어그램을 작성해보았다. 요구사항의 각 기능에 대해 필요할 것으로 예상되는 데이터들을 컬럼으로 지정하였다. 사실 프론트엔드 측과 협의하에 어떤 데이터를 주고받을 지 결정된 후 테이블을 설계하는 것이 맞는 것으로 보인다. 하지만 요구사항 정의서 작성 시에 기능의 동작에 대한 전반적인 논의가 된 터라, 임의로 작성한 것을 프론트엔드측에서 확인했을 때 큰 문제는 없었다. 필요한 테이블들을 완성하고 테이블 간의 연간관계를 설정해주었다. 여기서 질문글의 ‘조회수'를 관리하기 위해 ‘질문'테이블에 컬럼으로 둬야할 지, ..
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
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; ..
신입 개발자 수준에서 SW 아키텍처 까지 관심을 가지고 적용하는 경우는 많지 않은 것 같다. 나 역시도 SW 아키텍쳐를 MVC, Monolithic, 계층형 정도의 키워드로만 어렴풋이 알고 있었다. 원티드에서 프리온보딩 백엔드 과정으로 SW 아키텍처라는 주제를 진행한다고 하여 참가하게 되었다. 1. 도메인 먼저 도메인이란 무엇인가 에 대한 나의 정의는 다음과 같다. 하나의 바운더리로 묶이는 어떠한 영역 도메인에 대한 설명을 들을수록 모호한 것을 느꼈다. 하지만 결국은 단어를 직역한 것과 같이 '영역'이 핵심인 것 같다. 비즈니스를 기준으로 도메인으로 나누자면 금융, 의료, 여행, 부동산 등 여러 영역으로 나눌 수 있을 것이다. MVC 패턴에서 기능별로 도메인을 나눈것이 Model, View, Contro..
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. 스택은 괄호가 올바른 지 검사할 때 사용한다. 큐가 반복할 때마다 스택을 통해 ..
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..
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시간짜리 유튜브 영상을 정주행해본 적은 거의 없다. 하지만 어제까지만 해도 굉장히 마음이 힘든 상태였던 나에게는 너무나도 흥미가 생기는 내용이었다. 처음부터 끝까지 말씀 하나하나 곱씹으며 듣고 알려주시..