개발자일지/TIL(Today I Learn) 27

TIL 35. 찾은 블로그의 방향성

오늘 공부한 것 컴포넌트 스캔 의존관계 자동주입 빈 스코프 1. 즐거운(?) 스프링 공부 JAVA 는 내가 알던것 보다 훨~씬 복잡하고 어려운 친구였다 html/css는 말할것도 없고 알고리즘은 친구도 아니고 날 괴롭히는 퉁퉁이였다면 스프링은 위 세개에 비하면 내적친밀감은 있는 것 같다 건너건너 아는 사이였는데 어쩌다 게임 한판 같이 재밌게 한 정도? 물론 앞으로 함께 지내면서 이 친구의 숨겨진 무서운 모습을 보고 엉엉 울 수도 있겠지만 그래도 반갑고 아직은 재밌다 실제로 내가 개발자로써 처음 취직을 한다면 가장 잘 다뤄야할 기술이기에 돌다리도 두들겨보는 심정으로 천천히 깊게 잘 알아가야겠다 반갑다 스프링아! 2. 블로그의 사용처를 깨닫다 github에 TIL을 쓰는게 오히려 편하고 잔디심는것도 재밌다보..

TIL 30. DFS 뒷북(feat.BFS)

오늘 공부한 것 HTTP GET, POST 요청하고 응답받기 백준 - 1260 : BFS와 DFS 드디어 내 손으로 푼 DFS 1주일도 전에 공부한 내용인데 이해가 되지않았다 그래서 벼르고벼르다 저번 연휴에 정복해야겠다 생각했는데 정말 놀랍게도 나의 뜻대로 되지 않았다 그냥 놀았다 바로 이해하고 푸는게 쉽지 않다고 들었고 실제로 느껴서 스트레스 받지 않고 넘기려했지만 정말 희안하게도 꿈에서도 DFS가 나왔다.. 나도 모르게 정말 스트레스였나보다 이번주 알고리즘 스터디 문제도 DFS여서 이번에야 말로 이해하리라 다짐하고 가장 기본이라 생각되는 1260번 문제를 도전했다 메모리초과가 뜨긴 했지만 일단 정답을 띄우는데 성공했다! 템플릿을 배끼지 않고 내 머리로 직접 짜내어 문제를 해결하는데 성공했다 DFS에만..

TIL 26. 친해지려 노력중인 알고리즘과 깃허브

오늘 배운 것 그리디 알고리즘 구현 - 시뮬레이션, 완전 탐색 검색 알고리즘 - 선형, 이진 탐색, 해시 1. 알고리즘 알고리즘을 접한 나의 패턴은 항상 동일했다 '아 생각보다 개념이 어렵진않네?' -> '어? 문제를 풀어보라고? 바로 풀릴까?..' -> '어림도없지 바로 for문과 if문 갈겨버리기' -> ' 코드는 무진장 복잡하고 답은 안나오고 좌절' 어제까지 매일 페어프로그래밍 역시 있었기에 하루하루 쫒기듯 공부하다가 오늘 여유가 생겨서 개념을 좀 더 살펴보고 간단한 문제들을 살펴봤다 문제별로 나름의 패턴이 있다는 것을 확실히 느꼈다 출구없는 미로라고 생각했는데 적어도 공부하면 될거라는 희망이 생겼다 물론 문제를 보고 어떤 알고리즘을 사용할지 떠올리는 것도 중요하겠지만 그런 눈도 공부하다보면 생기리..

TIL 24. 꾸준하게 꾸준하기

오늘 배운 것 Tree, Graph, BST 코플릿으로 구현 백준 10815 풀기 어제와 마찬가지로 개념자체는 받아들이기 쉬웠으나 코드로 구현해보는게 어려웠다. 그래도 구현해보니 좀 더 깊게 이해되었다. 간단한 문제를 풀면서 익숙해져야겠다 그런데 간단한 문제는 어디서 찾을까 백준을 풀면서 반성하게된 것이 많았다. 모든 문제를 비슷한 패턴으로 풀다보니 성장이없는것 같아서 자료구조와 알고리즘 그리고 컬렉션들에 대해 더 익숙해질 필요를 느꼈다. 역시나 간단한 문제를 풀면서 손에 익히자. + 공부방법에 대해 공부 계획은 정말 빠릿빠릿하게 세우고 코드스테이츠 과정이 끝나면 조금 지쳐서 코딩테스트 하나 풀거나 복습 조금하고 마는 경우가 종종있다. 전략을 바꿔서 머리회전이 빠른 오전에는 개념학습이나 책읽기를 하고 느..

TIL 23. 디너클럽과 사라진 22

오늘 한 것 Stack, Queue Stack, Queue 코플릿 문제 풀기 코드스테이츠 디너클럽 체험 Stack, Queue는 이해는 쉬웠다. 프링글스와 선착순 하지만 구현은 어려웠고 응용은 더 어려운 것 같다. Graph와 Tree부분을 슬쩍 봤는데 거기서도 쓰였고, 재귀에서도 쓰이는걸 보고 중요하다, 배워야한다 라고 하는것은 다 이유가 있다고 느꼈다. 알고리즘과 자료구조에 대한 공부는 꾸준히 가져가자 오늘의 의문 : Graph와 Tree는 그럼 어디다쓰는가? 코드스테이츠 디너클럽에 참여해봤다. 특별한 건 아니고 수강생+수료생이 모여서 이야기하는 자리였는데 확실히 특별한 건 없었다 하지만 코드스테이츠에서 비대면수업을 하면서 항상 아쉬웠던 게 교류였는데 그런 부족함을 채워주는 좋은 자리였다고 생각한다...

TIL 21. 알듯말듯 재귀

오늘 배운 것 누구나 자료 구조와 알고리즘 10장 - 재귀를 사용한 재귀적 반복 코드스테이츠 - 재귀함수 백준 1475 - 방 번호 KOCW - 운영체제 1-1강 재귀가 뭔지는 알겠다. 정의를 정확하고 또 어렵게하면 어렵겠지만 함수 안에서 함수 자기자신을 호출하는 것인건 알겠다. 그리고 StackOverFlow를 방지하기위해서 멈출 수 있는 조건을 만들어야 하는 것도 알겠다. 근데 얘를 대체 어따쓰고, 왜 써야하는지를 알아내는데 많은 시간이 걸렸다. 한마디로 정리하면 가독성인것 같은데 아무래도 많이 사용해봐야겠다.

TIL 20. 질문에 답하면서 공부하기

기술면접 복습의 차원에서 여태까지 배운 것들을 점검할 수 있는 질문을 14가지 받았다 여기서 3가지를 준비한 뒤에 페어분과 모의면접을 해야하는데 당장 어떤 답이건 일단 꺼낼수는 있는 질문조차 몇개되지않았다. 그래서 오늘의 공부목표는 선택한 3가지 질문은 충분하게, 나머지 질문도 간단하게라도 답을 준비하는 것이다. 메서드의 오버라이딩과 오버로딩의 차이 오버라이딩 - 주 사용처 인터페이스 오버로딩과 달리 매개변수, 반환타입 모두 동일해야한다 상속관계에서 사용되며 부모의 메서드를 재정의하는 개념이다 휴대폰이라는 부모클래스와 그를 상속받은 스마트폰 클래스가 있을때 통화라는 메서드를 사용한다고하면 스마트폰에는 부모클래스와달리 영상통화라는 옵션도 가능할 수 있다. 이럴때 통화메서드를 오버라이딩해서 영상통화 기능을 ..

TIL 19. JVM

부분의 부분의 부분 정리 아래와 같은 객체를 생성하는 경우, Car morning = new Car(); Stack(변수들) morning + Heap의 주소값 과 같은 금방 사용될 변수들이 저장된다. Heap(new로 만들어진것들 - 객체) new Car(), 색, 속도 등 객체에 대한 정보가 저장된다. ※String의 경우 String name = "아무개"; 는 Heap이 아닌 constant pool에 들어간다. 자주 사용되는 경우 매번 생성해야되니 메모리에 무리가 간다. 그러나 String name = new String("아무개"); 는 Heap에 들어간다. 그렇기 때문에 new 로 생성한 String은 각각 주소값이 달라서 ==로 비교가 안되는 것이다. 원리를 알아야하는 이유를 알다 코드스테..

TIL 18. 커리어레슨

커리어레슨 타다 서버 개발자님의 커리어레슨 공지가 떠서 뭐라도 배우자 싶어서 신청했었다. 생각보다 많은 것을 배우게 되어서 좋은 시간이었다. 중요한 키워드를 꼽아보자면 객관적인 분석을 한 뒤 개선을 위해 일단 하는것 그리고 TIL의 중요성이다. 지금 깃허브에는 정보를 위주로 작성하고, 블로그에는 소감 등 개인적인 감상을 적고있는데 어쨌든 꾸준히 하고있으니 둘중 하나에 더 많은 노력을 가하기로 했다. 깃허브를 중심으로 작성하고 블로그는 꾸준히 보다 개인적인 감상을 적을 필요가 있을때 사용해야겠다.

TIL 16. 페어프로그래밍

협업하는 자세 오랜만에 페어프로그래밍을 했다. 함께 문제를 해결해야하는데 나는 혹시나 걸림돌이 되지않을까 걱정을 하고 미리 공부해서 풀어보곤했다. 그 결과 무던하게 잘 끝나긴했지만 이게 페어프로그래밍의 취지는 아닐것이라는 생각이 들었다. 어제 스터디를 하면서 다른분의 생각을 들었는데 '서로 못하려고 페어프로그래밍을 하는게 아닌가요?'라고 하셨다 맞다 나는 못하는게 두려워서 비난이 두려워서 혼자 하려고 했던 거다 어차피 배우는 입장에서 함께 고민하는것도 좋은 공부일텐데 나의 두려움 때문에 상대방의 배울 기회를 빼앗는건 아닌가하는 생각이 들었다. 다음부터는 페어프로그래밍을 대비해서 공부는 철저히 하되 미리 해보거나 하진 않아야겠다. 그리고 오늘 만난 페어분은 전에 게임 기획자로 일하셨던 분이었다. 개발자와 ..