전체 글
[Regex] 정규식이란?
1. Regex, 왜 필요하지? 프리코스 3주차에서도 Regex와 관련된 포스팅을 한 적이 있는데, (그때는 배웠던 내용중의 일부로 넣었었다.) 이번에도 피드백을 받는 과정에서 정규식과 관련된 이야기들이 나와서, 정규식을 조금 더 정리해보려고 한다 정규식에서 입력받는 부분등에 있어 늘 if문으로 처리하면 조건이 까다롭고, 엄청나게 많은 if문이 필요하게 된다. 이런 상황에서 효과적으로 사용할 수 있는 것이 바로 regex, 즉 정규표현식이다. 2. Regex란? 정규 표현식은 줄여서 정규식이라고도 하며, 영어로는 Regular Expression, 줄여서 regex, regexp라고도 한다. 초반에는 편집기의 패턴매칭을 시작으로 사용되었으며, 수학적인 의미에서 시작되었다고 하며, 특정한 규칙을 가진 문자..
[JUnit5] 테스트 기초 알아보기
우테코를 하며... 처음으로 말로만 들어보던 "TDD" 를 시작했다. 프리코스에서도 최대한 적용해보려고 했으나... 못했던 부분이기에 최대한 서치와 공부를 하며 기초적인 부분을 쌓았던 부분을 정리하고자 한다. 아직 앞으로 공부할게 잔뜩이다. 화이팅!!!! 1. JUnit5 5란? 테스트를 위한 프레임워크로, Java 8 이상의 버전에서 적용된다. JUnit5의 세부 모듈은 Jupiter, Vintage, JUnit Platform 으로 구성되어있다. JUnit Platform JVM에서 테스트 프레임워크를 실행하는데 기초를 제공한다. TestEngine API를 제공해 테스트 프레임워크를 개발할 수 있다. Jupiter & Vintage Jupiter와 Vintage는 JUnit Platform이 제공하..
[Spring] JsssionID란?
기존에 진행하던 프로젝트를 수정하는 과정에서 JESSIONID에 대한 이야기가 나와서, 한번 깔끔하게 정리하고자 포스팅해보고자 한다. (그냥 가볍게 java의 SessionID 아니려나? 라는 생각도 들었으나... 오늘 우테코에서 메타 인지 이야기도 나온 김에...) 1. JSESSIONID 란? 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키이다. 즉, 세션에서 사용되는 쿠키이름이다. 쿠키는 클라이언트에 그리고 세션은 서버에 저장되는 걸로 알고있는게 일반적이고, 그러므로 쿠키보단 세션이 보안에 좋다고 이전에 공부했다. 하지만 세션 또한, 쿠키 형태로 서버와 클라이언트간에 주고 받는다. HTTP 프로토콜은 기본적으로 stateless(무상태)하다. 즉, 상태정보를 유지하지 않기 때문에, 톰캣은 JSE..
OS 정리 5 - 메모리 관리 (Memory Management) [1]
1. Background 프로그램은 (디스크에서) 메모리로 가져 와서 프로세스 내에서 실행되도록 해야 함 주 메모리 및 레지스터는 CPU가 직접 액세스 할 수 있음 레지스터는 하나의 CPU 클록 (또는 그 이하)으로 액세스 주 메모리는 많은 사이클을 수행할 수 있음 캐시는 주 메모리와 CPU 레지스터 사이에 위치 올바른 작동을 보장하기 위해 필요한 메모리 보호 2. Binding of Instructions and Data to Memory 프로그램은 기본적으로 이진 실행파일 형태로 디스크에 저장되며, 이를 실행하기 위해서는 프로그램을 메모리로 가져오는 것이 필요하다. 이때, 주소 바인딩은 크게 세가지 단계로 이루어진다. 1. 컴파일 시간 바인딩 - 만일 프로세스가 메모리 내에 들어갈 위치를 컴파일 시간..
[우아한 테크코스 4기] 최종 합격 + 최종 코테 후기
우테코에 합격했다. 사실 최종 코딩테스트를 정말 엉망으로 봤다고 생각했기에 (기존에 공부했던 내용들을 100% 보여주지 못한게 계속 마음에 걸렸다. 하면서도 내가... 왜이러지?의 연속. 카메라도 중간에 끊기고 꺼지고 여러모로 일이 많았다.) 어떻게 될지 모른다고 생각했는데, 합격이라니 왠지 마음이 싱숭생숭하다. 사실 확인을 밖에서 해서, 메일을 받고 내가 제대로 본건지 몇번씩 확인했던 것 같다. 일단, 혹시 이후에 우테코에 관심이 생겨서 이 포스팅을 보게 된 사람이 있다면, 우테코 준비를 하며 최종 코딩테스트 환경에 맞는 준비를 하는 것을 추천한다. 일단 나는 1. 갑자기... 핸드폰에서 zoom이 튕기는 문제가 발생했었음. (이후 수정은 했으나 순간 멘붕이 왔었다.) 2. 치킨집 문제 (2019) 를..
[우테코 프리코스 회고] 3주간의 프리코스를 마치며
3주간의 프리코스가 끝났다. 아직 최종 테스트가 남았지만, 그래도 여정의 큰 부분을 끝낸 기분이라 꼭 산의 정상에 오른 것처럼 마음이 싱숭생숭하다. 아까 3주차 회고를 마저 썼지만, 3주간 전체의 마무리를 위한 글로 더 써보려고 한다. (투머치토커라고 해도 좋다... 맞으니까... 그치만, 개인적으로는 이렇게 기록으로 남겨 누군가에게 도움이 된다면 좋을 것 같다.) 대학교에서 생각지도 않았던 분야로 나아가고, 비전공자로서 나만의 커리어를 쌓아가는 과정은, 언제나 내게 나 자신에 대한 증명을 요구했다. 내 열정과, 지식, 의지와 노력에 대한 증명. 솔직히 말하자면 그 과정의 한 때에는 '내가 굳이 전공도 아닌 분야로 가서, 왜 이렇게까지 해야하나' 라며 우울했던 적도 있었다. 아마 모든 비전공생들이 한번쯤..
[우테코 프리코스 회고] 3주차를 마치며
3주간의 우테코 프리코스가 마무리되었다. 길다면 길고, 짧다면 짧을 3주였지만, 정말 치열하게 살았다고 생각한다. 혹시 누군가 이 포스팅을 본다면, 그리고 이런 프리코스의 과정에 관심이 생겼다면, 한번쯤은 그냥 3주간의 코스를 따라가보는 것도 좋을 것 같다고 생각할 정도로, 많은 것들이 바뀔 수 있는 시간이었다. (심지어 좋은 분들의 코드도 나와있고, 포스팅을 올려주시는 분들도 계시니, 정말 많은 것들을 배워갈 수 있을 것이라고 장담한다. 나도 미리 알았더라면 해보았을텐데, 늦게나마 알아낸 것에 감사하고 있는 중이다.) 그리고 다른 분들의 코드를 보다보면, '저 사람은 왜 저렇게 짠 건지 이야기를 들어보고 싶다' 라는 생각이 종종 든다. 내가 느낀 그 사람의 좋은 점을 공유하고, 또 본받으며 성장하고 싶..
[우테코 프리코스 회고] 2주차를 마치며
우테코도 어느새 절반 이상을 넘겼다. 이제 곧 다가올 3주차만 하면 프리코스 과제도 끝이라니, 항상 마지막을 바라보는건 묘한 느낌이 들게 한다. 프리코스를 하는 지금, 학기중이다보니 이것저것 바쁜 일들이 참 많은데, 친구와 대화를 하다가 친구가 "근데 너, 힘들다고 하면서 되게 열심히 한다. 재밌어? 예전에 처음 코딩 배울때 모습 보는 것 같아." 라는 이야기를 들었다. 가끔 스스로 깨닫지 못한 것들을 지인들이 알려줄 때면, 서로 대화하는 것의 중요성을 느끼곤 한다. 우테코에서도 서로에게 깨달음을 줄 수 있는 크루가 되고싶다는 목표를 마음속에 하나 추가해보려고 한다. 처음은 항상 설렌다. 대체로 난도가 낮은 문제들을 접하니 내가 잘하는 것 같고, 해낼 수 있을 것 같다고 느낀다. 그런 점에선 사실 프리코..
[우테코 프리코스 회고] 1주차를 마치며
1주간의 프리코스, 설레기도 하고 어렵기도 했던 1주간이 지났다. 한주간 정말 치열하게 살았다고 생각한다. 질문에 답변을 하고, 계속해서 문제해결을 하며 살아남는 사람들이 갖고있는 가장 큰 강점은 배움에 뛰어들고, 알아보고자 하는 의지다 예전에 들었던 세미나에서 기억나는 문장이다. 날밤을 새더라도, 몇날 며칠을 고민하더라도 해보라고. 설사 그 문제가 해결되지 않더라도, 그래서 결국 다른 사람에게 물어보게 되더라도 스스로 고민하고 해결하려 시도 했느냐 아니냐는 큰 차이가 난다고 한다. 문제에 대한 고민은, 그것을 시작한 순간부터, 인터넷을 뒤져가며 머리 아플 정도로 고민한 순간부터 달라지기 마련이라고. 그런 의미에서, 우테코 프리코스는, 나에게 주어진 정말 좋은 질문이었다. 서론이 조금 길었는데, 이번 1..
우아한테크코스 1차심사 합격!
한참 포트팅을 못하고 있었는데... 조금 변명을 해보자면 학과 일이며 스터디며 이것저것 정신없는 일정인지라 정리할게 쌓였지만 제대로 못하고 있다... 그러던 와중에 우아한 테크코스 1차 합격을 하여 후기글을 적어보고자 한다. (당장 오늘 오후 3시부터 프리코스!) 우아한테크코스란? 우아한형제들에서 진행하는 프로그래밍 교육과정으로 약 10개월 동안 프로그래밍 교육을 통해 우수한 역량을 가진 프로그래머를 키워내는 교육 프로그램이라고 보면 된다. 백엔드와 프론트엔드로 나누어서 교육을 진행하고, '프로그래밍 언어 학습 - 웹 프로그래밍 - 팀 프로젝트 - 서비스 운영 및 유지보수' 를 전반적으로 배우는 교육 프로그램이 구성되어있다. 선발 과정은 '서류 지원 - 온라인 코딩 테스트 - 3주간의 프리코스 - 최종 ..