전체 글
-
백엔드 부트캠프 학습 파트를 마치면서회고 2022. 8. 18. 17:07
백엔드 부트캠프 학습 파트를 마치면서 코드스테이츠에서 진행한 백엔드 부트캠프가 오늘로 끝이다. 완전 끝은 아니고 학습파트가. 오늘까지의 일은 오늘 이 글로 정리해두고, 내일부터는 새롭게 만난 프로젝트 팀과 새로운 마음으로 열심히 임해보려고 한다. 라운드 숄더와 거북목과 프로그래밍 절임 운동을 꾸준히 해온 편이라 몸 좋다는 이야기는 못 들어도 자세 좋다는 이야기는 종종 듣곤 했었는데 지금의 나는 구부정한 어깨와 영광의 거북목을 얻었다. 4개월 동안 정말 집에서 공부만 했다. 평일에 공부, 주말에 공부, 책상에 앉아서 공부, 밥먹으면서 공부, 자기전에 공부, 일어나서 공부, 하다하다 쉬는 시간에는 다른 공부를 하면서 머리를 식혔다. 프로그래밍으로 뇌를 절여서 프로그래밍 절임이 되었다고 느낀 것은 지난달(3개..
-
Java Multithreading [2] - Java에서 Thread를 종료하는 법Java/Multi Threading 기초 2022. 8. 18. 09:02
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 2. Java에서 Thread를 종료하는 법 Java에서 Thread를 만들고 시작하는 방법을 알아보았으니까 이제 종료하는 법도 알아봐야할 것 같아요. 왜냐면 어떤 경우에는 Thread가 자체적으로 종료되지 않는 로직을 가지고 있을 수 있는데, 단 하나의 Thread만 살아있더라도 어플리케이션은 종료될 수 없기 때문이에요. 실행시킬 수는 있지만 종료시킬 수 없다면 그 어플리케이션은 아주 큰 문제를 가지고 있는 거겠죠! 계속해서 실행되고 있다는 것은 메모리와, 운영체제의 자원과, 스케줄링 대상에 계속해서 들어간다는 것이고(상대적으로 다른 작업에 방해가 될 수도 있고), CPU 캐시를 차지하고 있어..
-
Java Multithreading [1] - Java에서 Thread를 생성하는 법Java/Multi Threading 기초 2022. 8. 16. 08:29
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 1. Java에서 Thread를 생성하는 법 Java로 프로그래밍을 하고 있는 누구나 Thread를 사용 중입니다. main() 메서드를 실행하는 main thread인데요. 이 thread는 메인 메서드가 실행되서 끝나는 블록을 만날 때까지의 실행을 담당합니다. 그러면 하나의 thread만 더 추가/실행할 수 있다면 multithreading을 구현하게 되는 거네요! Java에서는 thread를 실행하는 데에 필요한 속성과 동작들을 하나의 class로 JDK에서 관리하고 있습니다. Thread라는 이름의 클래스입니다. Thread t = new Thread();와 같은 식으로 새로운 스레드를 ..
-
Java Multithreading [0] - 스레드와 프로세스의 차이Java/Multi Threading 기초 2022. 8. 12. 08:52
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 0) 스레드의 사용 이유 - 스레드와 프로세스의 차이 스레드는 성능을 위해서 사용합니다. 요즘 데스크탑에서 여러 프로그램을 사용하는 건 이상하지 않습니다. 병렬적으로 처리가 가능하기 때문입니다. 엄밀히 말하자면 두 가지 방식이 있습니다. 병렬적으로 처리하는 것과, 병렬적으로 처리하는 것처럼 보이게 하는 것(사실은 용어가 나뉘지만 지금은 이 정도로 표현하겠습니다). 좀 이상하죠? 동시에 처리하는 방법이 있는데(프로세스), 왜 굳이 '그래 보이는' 방법(스레드)이 따로 있을까요? 다른 이유는 아니고, 프로세스가 스레드에 비해 생성비용이 크기 때문입니다. 조금만 더 자세히 요약해볼게요...
-
간단한 사용법: Java/Selenium과 함께한 자동로그인(이라고 쓰고 삽질이라고 읽는 것)기타 2022. 8. 5. 16:16
* 한 줄 요약: 셀레니움은 짱인데 투팩터 로그인까지 시키기에는 부담이 너무 크다 Selenium 브라우저를 직접 실행시켜서 자동화 된 작업을 할 수 있도록 도와주는 라이브러리. 간단한 스크립트로 웹애플리케이션을 테스트 할 수...도 있지만 나는 자동로그인에 사용하려고 했다. 발단 4개월째 부트캠프 수업을 듣고 있는데 춘추가 춘추인지라 자꾸 출석체크를 까먹는 것이다... 아침에 부지런히 로그인 해놓고 왜 출석버튼을 누르질 못하니 왜... 오늘은 너무 짜증이 나서 그냥 '로그인 시켜보자'는 마음이 들었다. 누구한테? 컴퓨터한테... 금방 Selenium이라는 유용한 라이브러리를 찾을 수 있었다. 간단한 사용법 안내 1. build.gradle에 추가. 2. 사용중인 chrome 버전을 확인 크롬 설정(....
-
# 7월 5주차 WIL: 이번주에 배운 주요한 내용들Today I Learned & WIL, MIL 2022. 7. 30. 14:59
WIL: 이번주에 배운 주요한 내용들 1. WIL Spring Security: Authentication/Authorization 처리 방법과 흐름, 관여하는 객체 관계 이해 Security의 기본 filterChain Session과 SecurityContextHolder Bearer를 이용한 JWT 인증의 구현 및 흐름 인증코드 방식의 OAuth2.0 구현 방법과 흐름의 간략한 이해 기초부터 다시 점검해보자는 생각에 Java 공부를 다시 시작(for/if, 이런거 말고...) 프로젝트를 위한 공부 architecture 구성과 차이 entity design과 ERD 그리는 규칙 프로젝트 패키지 구성 ERD 구성 PS 기상 후 한 문제, 취침 전 복습 블로그 포스팅 2개 2. 학습 평가 스프링시큐리티..
-
JWT는 왜 base64로 encoding 하는 걸까?각종 학습 요약/Concept 2022. 7. 28. 10:53
요즘 JWT를 공부하고 있는데요. 사용할 때 보면 약속이라도 한 듯이 encode/decode해서 사용하더라고요. encrypt/decrypt도 아니고(그러니까 보안의 목적도 아니고), 굳이 난독화 해서 보낼 이유가 있나? 라는 생각이 들었어요. JWT는 서버 부하를 줄여주기 위해 도입되는 컨셉트인데, 쓸데없는 연산처리를 덧붙인다고? 그럴리가 없을텐데. 그럼 이유가 있을텐데. 고런 의식의 흐름이 흘러갔습니다. 그래서 일단 구글링을 해보았는데요. 시원하게 이해되는 명쾌한 답변은 얻지 못했습니다. 아쉽게도요. 그래도 찾아본 내용들을 바탕으로 개인적으로 생각을 해보았고, 제 나름대로 내린 답을 공유해보겠습니다. 비판적으로 수용해주세요. 😀 JWT가 사용될 환경을 상상해보자 하나의 서버가 모든 것을 처리할 수 ..