본문 바로가기

부트캠프10

코드스테이츠 백엔드 부트캠프 43기 (21,22일차-재귀 회고) 재귀 한달 간의 Section1 수업이 끝나고 Section2에서는 알고리즘, 데이터베이스, 스프링에 대하여 배우게 된다. 코딩테스트를 준비하면서 재귀문제를 몇개 풀어보았기에 재귀의 개념과 문제를 푸는데 어려움이 없었다. 하지만 코드스테이츠에서 제공되는 코딩테스트 재귀 문제 중 마지막 문제를 푸는데 도저히 답이 안나오고 몇시간 머리를 굴려도 답이 해결되지 않았다. 그래서 결국 5시 zoom 세션에서 선생님이 마지막 문제 해설을 해주셨는데 정말이지 매번 엄청 고민한 문제의 해설을 들을때 마다 "와 어떻게 이걸 생각하지?" 라고 생각을 하게 되었다. 그런데 그 전에 페어프로그래밍을 하면서 페어분(비전공자분)한테 내가 기본문제를 설명해주고 풀어줄때면 " 어떻게 이걸 생각해요? " 라고 물어보신게 떠올랐다. 그.. 2023. 1. 13.
코드스테이츠 백엔드 부트캠프 43기 (19,20일차-Section1 회고) 한 달 진행 후기 백엔드 부트캠프를 하기전 내가 얻고자 했던 것 1. 전공에 대한 부족한 부분을 채우자. 2. 다양한 사람들과 많이 소통해보자. 3. 프로젝트 경험을 쌓자 (협업 능력). 4. 규칙적인 생활 + 훈련수당 1. 전공에 대한 부족한 부분을 채우자. 대학을 다니면서 과제와 시험에 쫓기다 보면 메타인지를 깨닫지 못하고 오로지 시험에 나올 필요한 부분과 효율적이지 못한 공부를 하게 되었다. 그래서 전공자 임에도 완벽하지 못한 걸 깨달았고 이러한 부분을 채우고 싶었다. 확실히 부트캠프를 진행하면서 한 번 배운 내용을 보게 돼서 그런지 전체적인 흐름을 알 수 있었고 내용, 개념을 아는 것보다는 이걸 왜 사용하는지에 대해 초점을 맞추다 보니 점점 전공에 대한 살 이 붙기 시작하였다. 학부 시절에는 깃허.. 2023. 1. 11.
코드스테이츠 백엔드 부트캠프 43기 (18일차-스트림 회고) 스트림 요약 정리 처음 스트림을 배울때 스트림에 대해 어색하면서 여러 메서드들이 줄줄이 나오니깐 매우 어렵게 느껴졌었다. 하지만 문제를 하나하나 풀면서 메서드 하나하나 이해하려고하니 스트림은 정말로 편하고 가독성이 좋은 코드가 나올 수 있었다. 스트림 - (생성, 중간 연산, 최종 연산) 중간 연산 distinct() - 중복된 값을 제거 해준다. sorted() - 값을 사전순으로 정렬 해준다. map() - 스트림에 들어있는 변수를 바꾸는 기능 (스트림 자체에 있는 변수가 바뀜) - Ex) map( x - > x*2) x의 값들이 2로 곱해진 값들로 변함 - 스트림에 "김가나", "박가나" 의 값들이 있다면 // 밑에 filter의 예도 있음 - map (m -> m.substring(0, 1)) -.. 2023. 1. 9.
코드스테이츠 백엔드 부트캠프 43기 (16,17일차-자바 심화 회고) 자바 심화 애너테이션, 람다, 스트림을 배웠다. 학부시절 별로 사용하지 않는것 같아(어려웠음...) 제대로 배우지 않고 넘어갔던 부분 그리고 코딩테스트를 준비하면서 몇 알고리즘은 정말 말도 안되게 짧은 코딩이 있었다. 그리고 나는 그걸 보고 "와 야무지다... 저건 무슨 문법이지? " 라고 했던게 바로 스트림 이였다. 그런데 오늘 딱 마침 자바심화에서 람다와 스트림을 배우게 되었다. 아직 람다, 스트림을 완벽히 내 몸으로 흡수하지 못하여 오늘은 간단한 개념정도만 정리하려고 한다. 람다 람다는 우리가 사용하는 메서드를 좀 더 간단하고 편리하게 사용하기 위한 문법이다. // 기존 방식 int sum(int num1, int num2) { return num1 + num2; } // 람다식 -> * 메서드 이.. 2023. 1. 7.
코드스테이츠 백엔드 부트캠프 43기 (14,15일차-컬렉션 회고) 열거형 상수들을 관리하기 위함 타입에 대한 안정성을 보장 - 아직 활용을 해보지 않아 몸소 와닿지 않는다. 제네릭 해시맵이나 어레이리스트를 생성해보면 ArrayList ?? = new ArrayList(); 이런식으로 선언이 된다. 여기서 이 안에 고정값이 아닌, String 이나 Integer 참조타입을 사용자가 원하는 타입을 넣을 수 있다. 이 같은 기능을 제네릭이라고 한다. 설정으로 ArrayList가 밑에 코드인거 처럼 가정한다면, T라고 선언을 하면 어떤 타입으로든 받을수 있다. class ArrayList { private T item; public ArrayList(T item) { this.item = item; } public T getItem() { return item; } publi.. 2023. 1. 5.
코드스테이츠 백엔드 부트캠프 43기 (13일차-버거퀸 프로젝트 회고) 버거퀸 프로젝트 버거퀸 프로젝트를 진행하면서 패키지를 나누고 그 안에 적절한 class를 넣으면서 모든 기능을 분리하는 역할을 프로젝트를 하면서 배우게 되었다. 하나의 클래스를 만들면서도 그 클래스는 자신의 역할만 수행해야하는 개념을 배우게 되었고 그렇게 되기 위해서는 추상화와 다형성은 필수였다. 추상화를 통하여 클래스간 인터페이스 역할을 해주었고 다형성을 통하여 추상화된 객체들을 하나의 변수에 받을 수 있게되므로 외부에서 객체를 주입할 수 있게되었다. -생성자를 통하여 객체를 외부로부터 주입받아 사용하자. 어떤 클래스를 자신의 역할만 수행해야 한다. 자신의 역할안에서 다른 인스턴스를 생성하고 그의 기능을 수행하는 거는 객체지향 역할에서 벗어나는 행위이다. 그렇기에 다른 객체를 받을때는 생성자를 통해 외.. 2023. 1. 2.
코드스테이츠 백엔드 부트캠프 43기 (10일차-객체지향 회고) 생성자 클래스에는 적어도 하나 이상의 생성자가 존재한다. 생성자를 통하여 객체 인스턴스의 변수들을 초기화 할 수 있다. - 생성자 명은 클래스 이름 - 리턴 타입은 없다. - 오버로딩 가능 - this() -> 생성자 내부에서만 생성이 가능, 다른 생성자를 호출할 때 사용 - this는 객체자신의 변수 tip // 클래스는 와 그리고 (생성자)와 (이너 클래스)로 구성 될 수 있다. // 클래스 메서드(스태틱) 안에서는 this를 사용할 수 없다. this 키워드는 인스턴스가 자기 자신을 가리킬 때 사용 객체지향 프로그래밍 기초를 배우면서 확실히 개념을 알고있는 상태에서 공부를 하니 이해가 더욱 잘 되며 모르는 부분에 집중을 할 수 있어 공부가 계획대로 잘 되가고 있다. 내일 부터는 객체지향 프로그래밍 .. 2022. 12. 29.
코드스테이츠 백엔드 부트캠프 43기 (5일차-Java 회고) 자바 오늘은 비교적 쉬운부분이였다. 자바 기초를 혼자 공부하면서 학부때 내가 중요하게 생각하지 않고 넘겼던 부분들을 지금 부트캠프 과정에서 최대한 집중해서 배우려고 노력하고 있다. String은 프로젝트를 할 때도, 코딩테스트를 할 때도 많이 중요하고 String 클래스에 좋은 기능들이 많이 있다. 그렇기에 String은 int나 char 등 다른 변수들과 다르게 클래스로 설정이 되어있다. StringTokenizer 란? 문자열을 우리가 지정한 구분자 로 문자열을 쪼개주는 클래스이다. import java.util.StringTokenizer; public static void main(String[] args){ String str = "This is a string example using Stri.. 2022. 12. 21.
코드스테이츠 백엔드 부트캠프 43기 (4일차-Git 회고) 4일차 회고 오늘은 Git에 대하여 학습을 하였다. 대학시절에도 교수님들이 Git사용을 권장하였지만 뭔가 복잡하게 되고 크게 문제가 없을거 같아서 Git사용을 접었었다. 그러나 오늘은 내가 부족한 부분을 채워야하기 때문에 어렵더라도 차근차근 진행해보았다. Git 과 Github란? Git은 버전을 관리해주는 프로그램이다. (우리가 생각하는 코드를 쓰고 수정하고, 팀원의 코드를 보고 하는 기능) 그럼 Github이란? Git의 기능을 쓸수 있는 클라우드 저장소이다. (인스타그램이 게시글등록의 핵심 기능이 있는 것과 같다.) Git의 주요기능 1. 버전관리 2. 백업 3. 협업 1.Fork : github Repository 를 fork 한다. ( 사용 허락? 같은 느낌) 2.clone : fork 한 Re.. 2022. 12. 20.