분류 전체보기
-
10주차 개념노트메가테라 2022. 10. 23. 18:49
IP address 배달을 받을 때 집마다 다른 주소가 있어서 우리 집에 배달올 것이 다른 집으로 가지 않듯이 장치에서 요청한 응답이 해당 장치로 올 수 있도록 네트워크에 연결된 장치들에 부여된 주소이다. 네트워크에 연결된 장치는 모두 IP주소를 갖고 있게 된다. application.properties Spring Boot Application을 생성했을 때 src/main/resources 폴더에 생기는 파일이다. 이 파일은 어플리케이션과 관련된 속성값들을 작성할 때 사용한다. 포트 변경, 어플리케이션 명명, DB연결 등을 이 파일을 통해 할 수 있다. Web content's Origin URL의 scheme, host, port로 정의된다. scheme과 host와 port가 모두 같을 때 같은 ..
-
20221023 TIL git을 파보다TIL 2022. 10. 23. 11:37
하루에 git 명령어를 셀 수 없이 많이 치면서도 git 내부 원리를 제대로 모른 채 명령어를 쳤었다. git은 변경 내역을 저장하는 게 아니라 스냅샷을 저장한다는데 어떻게 모든 것을 매번 저장하면서 이렇게 가벼운지 궁금했었다. 먼저, git은 분산 관리 시스템이다. 따라서 몇몇 명령어를 제외하고, git add, git commit등은 네트워크 연결 없이 로컬에서의 변화로 버전을 관리한다. 그런데 git은 내가 add하거나 commit한다는 사실을 어떻게 인지하는 것일까? git init은 내가 어떤 폴더를 버전 관리하겠다는 사실을 git에게 알려주는 것이다. 그리고 그 폴더에는 .git이라는 숨겨진 폴더가 있다. git은 모든 버전관리를 .git이라는 폴더에 파일을 추가함으로써 관리한다. 내가 한 모..
-
20221022 TIL ide 없는 삶TIL 2022. 10. 22. 15:15
코딩테스트를 ide없이 봐야하는 경우도 있다고 해서 오늘은 에디터 없이 코딩 문제를 TDD로 풀어보았다. 세상에... 안 그래도 어려운 코딩 문제 난이도가 배로 어려워지는 것 같다. import도 신경써줘야 하고, 메소드명, 오타 등등 자동완성이 도와줬던 부분들을 스스로 해야 한다. 또한 테스트도 깔끔하게 짤 수가 없다. 오로지 믿을 것은 나 자신밖에 없기 때문에 에러가 나면 없는 메소드를 가져다 쓴 것인지, 오타가 없는지, import에 문제가 없는지 모두 확인해줘야 한다. 알고리즘 연습만을 위해서라면 ide를 쓰는 것이 맞겠지만, 실제 코딩테스트 대비를 하려면 ide없이도 풀 수 있어야 한다. 지금은 ide를 쓰면서 TDD로 풀면 10분 안에 풀 수 있는 문제를 ide없이 푸니 거의 30분이 넘어가고..
-
메가테라 9주차 주간회고회고 2022. 10. 21. 21:50
벌써 9주차라니! 항상 느끼지만 시간이 정말 빠르다. 돌이켜보면 많은 것을 배운 것 같으면서도 모르는 개념이 나올 때마다 나의 부족함에 한없이 겸손해지게 되는 것 같다. 이번 주는 자바스크립트를 배우는 주간이었다. 이전에 내가 부족했던 부분을 채우고 몰랐던 부분을 새롭게 알게되어 좋았던 것 같다. 특히 자바스크립트를 처음 배웠을 때는 아예 이해를 하기 어려웠던 커링을 이해할 수 있게 되어 매우 좋았다. 생각보다 별 거 없었다 커링! 한 번에 인수를 하나만 받는 함수를 커링이라고 한다. 여러 개의 인수를 넘겨야 할 때 커링을 이용하면 f(a, b, c)를 f(a)(b)(c)로 변환할 수 있다. 이번 주에 습득한 가장 마음에 드는 스킬은 바로바로 정규식이다! 정규식은 매우 강력한 도구라서 꼭 사용하는 법을 ..
-
20221021 TIL 의존성 주입이 왜 제어를 역전하는 방식인가TIL 2022. 10. 21. 21:05
객체 지향을 처음 배우면서 이해가 잘 가지 않았던 개념이 의존성 주입과 제어의 역전이었다. 두 개의 연관 관계가 있다는데 의존성을 주입하는 것까지는 이해가 가도 의존성을 주입하는 것이 왜 제어의 역전인지 이해하기가 힘들었다. 다행히 객체 지향을 공부한지 몇 주가 지난 지금 이해가 조금은 되었다. 개발자로서 가져야 할 기본적인 전제는 변경되지 않는 코드는 없기 때문에 코드는 변경이 쉬워야 한다는 것이다. 객체 지향은 객체들의 협력으로 커다란 시스템을 만들기 때문에 어떤 객체는 다른 객체에 의존하게 된다. 의존한다라는 것은 의존하고 있는 객체의 변경에 영향을 받을 수 있다는 의미이다. 하지만 코드에는 변경이 자주되는 부분이 있고 그렇지 않은 부분이 있다. 변경이 자주 되는 부분은 조금 더 구체적인 부분에 해..
-
20221020 TIL 멋진 개발자 되기 프로젝트TIL 2022. 10. 20. 14:47
나는 항상 개발자들이 정규식을 잘 쓰는 게 너무 멋있었다. 나한테는 너무 어려워보이는 식들로 여러 패턴을 원하는 대로 쉽게 만들어내는 것처럼 보였기 때문이다. 개발 공부를 제대로 시작하면서 정규식을 꼭 잘 쓰는 것이 한 가지 목표였다. 그래서 몇 주 전부터 정규식 패턴을 만드는 것을 공부했고 이제 어느정도 정규식 패턴은 생성할 줄 알게 되었다. 그런데 정규식 패턴을 사용하는 방법도 알아야 결국 어떤 언어에서 정규식을 사용할 수 있다. 자바에서는 Pattern.compile안에 정규식을 써서 패턴을 생성하고, 생성된 패턴의 matcher메소드 안에 문자열을 넣어서 Matcher를 만들어서 사용하면 된다. 만약 패턴을 일정한 규칙에 따라 교체하고 싶다면 matcher.replaceAll 안에 함수를 넣으면 ..
-
20221019 TIL 왜일까TIL 2022. 10. 19. 13:01
오늘 하루의 요약 코딩을 하다보면 될 것 같은데 안되는 경우와 되면 안될 것 같은데 되는 경우가 있다. 오늘 코딩 도장 문제를 풀다가 돼야 될 것 같은데 안되는 경우가 있었다. 몇 개의 테스트 케이스에서 런타임 에러가 떠서 왜인지 확인을 하다가 입력값과 반환값 모두 long을 다루고 있는데 Integer.parseInt를 쓰고 있는 부분이 있어서 고쳤더니 해결이 되었다. 코딩 문제를 풀다보면 몇 케이스에서 런타임 에러가 뜨는 경우는 보통 자료형과 관련이 있는 경우가 많았다. 인자의 자료형을 꼭 먼저 확인하고, 만약 실수로 못봐서 자료형을 바꿀 때는 cmd f로 찾아서 하나하나 다 잘 바꿨는지 확인을 하자. 그리고 코딩을 하다가 테스트 코드를 짜고 코드를 일부만 구현한 줄 알았는데 돼서 놀랐다. 자바스크립..
-
20221018 TIL 반환을 하자!!!TIL 2022. 10. 18. 21:13
자바스크립트는 자유로운 언어이다. 그리고 반환형을 지정해주지 않기 때문에 return을 빼먹기 매우 쉽다. 자바에서는 반환형을 지정해주기 때문에 return을 제대로 안해주는 경우를 잡아줬었는데 자바스크립트는 반환형을 명시하지 않기 때문에 return을 제대로 하지 않아도 잡아주지 않는다. 그래서 결과값이 undefined로 뜨는 경우를 많이 겪고 있는 요즘이다. 함수값이 undefined가 떠서 보면 return을 빼먹은 경우가 대부분이다. 주의할 점은 재귀에서 반환을 할 때 자신을 호출하는 부분에도 return을 써줘야 한다는 점이다!!! 빠져나가는 조건 부분에서만 return을 하고 자신을 호출하는 부분에서는 return을 안써주면 조건에 해당하지 않을 때는 undefined가 뜬다. 왜냐하면 결국..