본문 바로가기

코드스테이츠6

40일차: Section2 회고 Section1 회고를 작성한게 며칠전 같은데 벌써 한달이 또 지나버렸다. 지난 한달동안은 자료구조(알고리즘)와 네트워크, 스프링에 대해 학습했다. 확실히 Section1 보다는 생소한 개념이 많았고, 많이 어렵다는 느낌을 받았다. (Section3은 2보다 더 어렵다는데.... 잘할 수 있겠지..?🫠) 부트캠프의 1/3이 지난간것처럼 올해의 1/4이 지나갔다. 하루하루 시간이 지날수록 뭔가를 이루어내야한다는 부담감이 생기기도 하는데, 우선 지금은 현재 진행중인 부트캠프를 성공적으로 완주하는것만 생각하기로 했다. 특히 이번 세션은 지난 세션에 비해서 강의 자료가 친절하게 느껴지지는 않았다. 각 개념에 대한 간략한 설명만 제공되고 나머지 공부는 공식 홈페이지 자료를 읽어보도록 구성되어있었다. 제공된 부가자.. 2023. 4. 10.
32일차: 데이터베이스 설계 ❯ Relational database (관계형 데이터베이스) 관계형 데이터베이스는 테이블(table)들이 다른 테이블과 관계를 맺고 모여있는 집합체로 이해할 수 있다. 여기서 테이블은 사전에 정의된 열의 데이터 타입에 맞는 데이터가 행으로 저장된 것을 의미한다. 열(column, field) : 테이블의 한 열을 나타내며 정해진 타입을 갖는다. 필드 또는 속성이라고도 불린다. 행(row) : 관계된 데이터의 묶음을 의미한다. 한 테이블은 같은 수의 열을 가지며 튜플, 레코드라고도 불린다. 값(value) : 각각 행과 열에 대응하는 값을 가진다. 열의 타입에 맞는 값을 가져야한다. 키(key) : 테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본키(Primary key)라고 한다. 기본키는.. 2023. 3. 29.
26일차: 알고리즘(Algorithm)과 시간복잡도(Time Complexity) ❯ 알고리즘(Algorithm) 알고리즘이란, 문제를 해결하는 최선의 선택을 구하는 것을 의미한다. 이를 위해 문제를 정확하게 이해하고, 어떻게 해결할지 전략을 수립하고, 수립한 전략을 실제 코드로 작성할 수 있어야한다. 알고리즘 문제 풀이를 위해서는 의사코드(PseudoCode)를 잘 작성하는것이 중요하다. 자연어(혹은 프로그램언어)를 사용하여 프로그램 작동 논리를 작성하게된다. 의사코드를 구체적이고 논리적으로 작성해야 코드 작성시 시간이 단축되고 디버깅이 용이해진다. ❯ 시간 복잡도(Time Complexity) 이때까지 문제 풀이 혹은 기능 구현만 신경써서 연산 수행시간은 전혀 고려하지 않았다. 시간 복잡도란, 프로그램 입력값과 연산 수행시간의 상관관계를 나타내는 척도로 입력값의 변화에 따라 연산을.. 2023. 3. 21.
문자열을 요소로 갖는 배열의 가장 긴 글자, 작은 글자 제거하기 문제 자체는 아주 간단했는데, 처음 풀이 방향을 잡을때 놓친 부분때문에 한참을 헤맨 문제이다. String 타입의 요소를 갖는 배열에서 가장 길이가 짧은 문자열과 가장 길이가 긴 문자열을 제거한 배열을 리턴하는 메서드를 작성하는 문제였다. List를 사용한 방법과 arraycopy를 사용한 방법 두가지로 작성했는데, 동일한 부분을 놓쳐서 정답이 맞기도/틀리기도한 결과를 계속 냈다. public static String[] removeExtremes(String[] arr) { // --------------------------- 1안 --------------------------- if (arr.length == 0) return null; int[] lengths = new int[arr.lengt.. 2023. 3. 21.
21일차: 재귀(Recursion) 재귀(再歸)는 사전적으로 "원래의 자리로 되돌아가거나 되돌아옴"의 의미를 가진다. 따라서 재귀함수는 말그대로 자기 안에서 자기 자신을 호출하는 함수를 의미하게 된다. class Example{ public int factorial(int num){ if(num 연습을 통해서 익숙해지도록 하자! 재귀함수가 성립하기 위해서는 구현하고자하는 내용을 작은단위로 쪼갤 수 있어야한다. 또한 재귀 호출이 종료되는 조건(시점)이 있어야한다. 위의 사례를 예로 들면, factorial 의 경우 1부터 1씩 증가시키면서 정해진 값까지 곱하는 형태를 가진다. factorial 5 = 1 * 2 * 3 * 4 * 5 (1 * 2 * 3 * 4) * 5 // 문제를 작은 단위로 쪼갤 수 있다 (1 * 2 * 3) * 4 (1 .. 2023. 3. 14.
1일차: OT, 부트캠프 및 코드스테이츠 선택 이유 ❯ 개발 직군으로 이직 결심 이전 회사에서 정보팀과 함께 교육/인사 프로그램을 개선하는 작업을 하면서 프로그래밍에 흥미를 느꼈다. 원하는 기능에 대한 비즈니스 로직을 작성하면 원하는 결과가 출력되고 여러 데이터를 쉽게 관리할 수 있다는게 신기했다. 거주 지역을 옮기면서 부득이하게 이전 회사를 퇴사하게 되었지만 나의 '일'을 계속해서 하고 싶다는 생각을 했다. 흥미를 느꼈던 개발 분야에서 새로운 커리어를 시작하고싶다고 생각했고, 개발 직군 이직을 위한 도전을 시작했다. ❯ 부트캠프 수강 이유 먼저 웹 애플리케이션 제작 관련 몇가지 인터넷 강의를 독학해보았다. 공부를 할수록 처음 배우는 분야이다 보니 아무래도 혼자 하기엔 어려움이 있다고 느꼈고, 체계적으로 배우는 과정이 필요하다고 생각했다. 가능하면 단기간.. 2023. 2. 14.