백엔드 87

[회고]코드스테이츠 수강_수료 후기 -2편- (完)

*** 이 글에는 부정적인 사고방식이 나타나고 있습니다. 오늘 하루, 깔끔한 하루로 마무리 하고 싶으시면, 이 글을 닫아주십쇼. *** 이 글에서의 의견은 지극히 주관적이며 개인의 경험, 성향에 따라 매우 다를 수 있습니다. *** 코드스테이츠 뿐 아니라 그냥 뭐든 부스트 캠프에 뛰어드는 동생, 친구, 형, 누나들에게 도움이 되면 좋겠다 싶기도 하고, 일단 수료 후기를 써보는게 좋겟다 싶어 이 글을 씁니다. 코드스테이츠를 수강하고 너는 뭘 했나? 취업준비 했다. 좀더 풀어서 말하면 아침에 일어나서 자소설 닷컴 보고 쓸만한 공고가 있는지 탐색 포트폴리오, 이력서 다듬기 추려낸 공고에 맞추어 자소서 작성하기 하루 1개 알고리즘 풀기 회사 조사하기 등등.... 그런데 이 때 문제가많았다. 분명 현직 친구들이 ..

[회고]코드스테이츠 수강_수료 후기 -1편-

*** 이 글에는 부정적인 사고방식이 나타나고 있습니다. 오늘 하루, 깔끔한 하루로 마무리 하고 싶으시면, 이 글을 닫아주십쇼. *** 이 글에서의 의견은 지극히 주관적이며 개인의 경험, 성향에 따라 매우 다를 수 있습니다. *** 코드스테이츠 뿐 아니라 그냥 뭐든 부스트 캠프에 뛰어드는 동생, 친구, 형, 누나들에게 도움이 되면 좋겠다 싶기도 하고, 일단 수료 후기를 써보는게 좋겟다 싶어 이 글을 씁니다. 코드스테이츠 수강이 끝났다. 수료 했다. 아 2월에 수료 했는데, 왜 5월에 이걸 올리냐고? 2023년의 팔랑귀에게는 정말 많은 일이 있었기 때문이다. 프로젝트도 진행하고, 코딩테스트도 보고, 자소서도 새로 쓰고..... 취업박람회에 직접 발품을 팔면서 어떻게든 취업해보려 애썻다. 그런데 잘 안됫다...

JAVA_코딩테스트 준비_이진트리순회_(BFS)

BFS BFS은 탐색 방식의 한 종류이다. 넓이 우선 탐색이라는 것인데, DFS와 비슷하면서 다른 탐색방식이다. 해당 부분에 대해서는 아래 링크를 참조하면 참 좋다. https://half-forty.tistory.com/77 JAVA_코딩테스트 준비_탐색 알고리즘_(BFS/DFS) BFS / DFS 그래프에서 탐색은 배열에서 나열된 요소들을 보는것과 달리 마치 무작위로 흩뿌려져 있는것들을 일일히 들여다 보는것과 비슷한 형태를 띈다. 그래서 특정한 값을 찾고 싶거나, 최단거 half-forty.tistory.com BFS는 코딩 테스트에서 사용하는 유형에 따라 DFS 대신에 선택해야 한다. 경로 탐색 시, 원하는 경로 상의 "레벨" 이 중요한경우 (트리 레벨) 비교적 작은 규모의 탐색인 경우 재귀함수를 ..

JAVA_코딩테스트 준비_부분집합_(DFS)

DFS DFS는 공부해도 "다른거에 적용해봐" 혹은 "스스로 재귀함수 짜봐" 라고 하면 못하는 경우가 있다. 내가 그렇다 ....ㅎ! 아무래도 그냥 뭐 막 여러개 풀어보는 수 밖에 없는것 같다. 이번에는 부분집합 찾기 문제다 DFS 관련 자료는 어떤 치킨 좋아하는 놈이 써놨다. https://half-forty.tistory.com/89 JAVA_코딩테스트 준비_이진트리순회 (DFS) DFS DFS는 탐색 알고리즘으로, 코딩테스트에 빈출되는 유형이라고 한다. 사실 DFS, BFS, 부르트 포스 등등 탐색 알고리즘은 많지만, 코테로 나오면 사실상 DFS 하면 깔끔히 풀리는게 많다고 한다. (다 half-forty.tistory.com 이번에는 다른 예제를 해 보자 부분 집합 문제 자연수 N 이 주어지면 1..

JAVA_코딩테스트 준비_이진트리순회 (DFS)

DFS DFS는 탐색 알고리즘으로, 코딩테스트에 빈출되는 유형이라고 한다. 사실 DFS, BFS, 부르트 포스 등등 탐색 알고리즘은 많지만, 코테로 나오면 사실상 DFS 하면 깔끔히 풀리는게 많다고 한다. (다만, 노드 끝에 원하는 답이 있는 가정 하에 (종종 탐색 레벨을 물어보는것은 BFS로 해야 함)) DFS는 재귀함수로 생각보다 간결하게 작성이 가능한데, 이것도 숙련되어야 한다. 뭐 DFS만 들이대면 마스터키처럼 풀리는건 아니다. 그런데 "가성비"가 좋다. 1. 코딩테스트의 전체적인 난이도는 모르지만 탐색 문제가 나왓을 때 -> 간단하게 DFS 넣어보고 통과하면 다음문제로 2. 코딩테스트 테스트 케이스는 모르겟는데, 여튼 대부분의 상황에서 BFS보다는 빠르게 찾아야 한다 -> DFS에 운명을 건다...

JAVA_자료구조_해시 맵 (hash map)

오늘 코딩테스트를 보는데, 사실 문제의 난이도는 높지 않았는데 해시맵 관련 문제를 못풀어서 블로그에 해시맵 관련 포스트를 작성하기로 했다. 해시맵의 간단한 문법과 관련된함수 두세개만 알면 10분이면 금방 푸는 문제였는데 ㅠㅠ 여튼 그래서 나중에 또 나오면 풀 수 있게끔 기록을 하고자 한다... Hash Map 일단 해시맵이란 뭔가? 해시맵은 맵(Map)인터페이스를 구현한 컬렉션이다. 뭔소리냐고? 맵(Map)은 기본적인 틀이고, 해시맵은 그 틀에 이것저것 넣어서 잘 작동하게 한거라고 보면 된다. 일단 맵의 기본적인 틀은 Key값 과 Value로 이루어져 있다. 뭔가 key, value 해서 복잡한거 같지만 단순하다. 우리가 종종 물건에 견출지로 내 이름을 적어놓거나, 번호를 적어놓기도 한다. 그런데, "물..

[회고]코드스테이츠 수강_20주차_3일차_부스트캠프 4달 경과

*** 이 글에는 부정적인 사고방식이 나타나고 있습니다. 오늘 하루, 깔끔한 하루로 마무리 하고 싶으시면, 이 글을 닫아주십쇼. **** 내가 왜 SW로 전향 했는지, 왜 그만 둿는지 종종 잊을 때가 있어서, 그럴때마다 보려고 쓴 글입니다. 문장에 두서가 없고, 뭔가 생략된거 같을 수 있는데 이해해 주시기 바랍니다. 더보기 https://www.youtube.com/watch?v=YMKXzIp2RQs 한대수 - 행복의 나라로 / 그래도 살아야지 어쩌겟어 부스트캠프 기들어간지 4달이 경과했다. 6개월짜리 코스중에 벌써 2달만 남았다는 소리다. 다르게 말하면 이제 배우는것도 중요하지만, 취업을 위해 더 비중을 쏟아야 한다는 거다. 사실 이제 지원할만한 기업 리스트를 뽑고 있다. 전자공학과 졸업하고 기업 뽑을..

백엔드 기초_네트워크(RSET API)

RSET API 우리가 웹 애플리케이션을 사용 할 때 HTTP메서드를 이용해서 서버와 통신을 한다. 사용되는 메소드 GET : 웹 페이지, 데이터 요청하는데 사용 POST : 새로운 글, 데이터를 서버로 전송하는데 사용 DELETE : 저장된 글, 데이터를 서버에서 삭제하는데 사용 PUT : 특정 글, 데이터를 서버에서 교체하는데 사용 PATCH : 특정 글, 데이터를 서버에서 수정하는데 사용 일단, HTTP는 뭐냐 싶을 수 있다. 대략, 우리가 브라우저를 통해서 서버의 데이터를 조회 할 때, URL 입력창에 http// 이런거 본적 있을 것이다. 일종의 프로토콜인데, 프로토콜은 또 뭐냐 할 수 있다. 그냥 우리 데이터 이캐캐 보낸다 라고 약속해 놓은게 프로토콜이고, 이캐캐 종류중의 하나가 http인 것..

JAVA_코딩테스트 준비_순열/조합

알고리즘에서 수학이란? 우리가 중,고등학교때 배운 수학공식, 법칙 등을 알고리즘에 적용하는 것이다. 예를들어서 좌표 상의 두 점 사이의 거리를 구할때 피타고라스 정리를 사용한다던가, 두 수의 최대공약수를 빠르게 찾아내는 방법이라던가(유클리드 호재법) 사실, 코테같은거를 준비하다보면 뭐 어떤 조건에서 소수를 구해라, 약수를 구해라 라고 한다. 그런데 이게 그냥 단순히 나눠서 안나눠떨어지게 코딩하면 시간초과 개판난다. "수학 법칙을 사용해서 연산 시간을 줄여야 한다." 이말이다. 순열과 조합 학창시절에 경우의수 뭐시기 하면서 뭘 뽑네 카드를 뽑네 몇장 뽑았네 순서를 상관하네 마네 한 기억이 있을것이다. 나는 이게 맨날 헷갈려서 경우의 수 적으면 그냥 손으로 그리거나 머릿속으로 계산해서 풀었는데, 이게 이제 ..

JAVA_코딩테스트 준비_ 알고리즘, 의사코드

1. 알고리즘? 우리가 특정 목적을 갖는 코드를 작성 할때, 사실 내가 짠 코드만 정답인 것이 아니다. 뭐든지 서울로만 닿으면 그만인데, 이게 방식에 따라 더 빨리가느냐, 늦게 가느냐 차이가 있는 것이다. 그런데, 기왕이면 좀 빨리 서울 가고, 비용도 적게드는 방법이 좋지 않을까? 그래서 알고리즘 공부가 필요하다. 실제로 서버에서 데이터를 다룰 때 굉장히 많은 데이터를 다루므로 최대한 많은 것을 빠르게 처리하는것이 궁극적인 목표이기 때문에 단순 구현 뿐 아니라 "어떻게" 데이터를 다루어야 하는지 정해야 한다. 쉽게 말하면 알고리즘은 "데이터를 다루는 방식"이라고 보면된다. 다행히, 선배 개발자들은 어떤방식으로 어떤식으로 적용해야 하는지 개념들을 잘 정리 해 놓았다. 우리는 그것에 맞게 공부해서, 적절히 ..