2주차가 정신없이 지나갔다..! 2주차에는 내가 선택한 언어인 자바의 문법을 공부하는 시간이었다. 먼저 자바를 쓸 것이라면 자바를 왜 써야하는 지 알아야 하는 게 우선이라고 생각했다. 자바를 쓰는 이유! - 운영체제 (OS) 에 구애받지 않는다. - 메모리를 자동 관리한다. - 객체 지향 프로그래밍이다. 어떻게 운영체제에 구애받지 않을 수 있을까? 먼저 자바를 이용하기 위해 설치했던 jdk에 포함된 jvm이란 소프트웨어 덕분이다. 먼저 내가 자바로 코드를 작성하는 과정을 살펴보자. 내가 IDE로 글쓰듯이 작성하는 것은 바로 소스코드! 이건 나를 위한 코드이다. 이건 cpu가 인식하지 못하니 기계어로 바꿔줘야 한다. 즉, 컴파일을 해야하는 것이다. 여기서 자바의 차이점이 등장! 자바는 JVM이라는 소프트웨..
problem 자바의 기본 구성이 어떻게 되는지! gradle은 뭔지!! jdk는 또 뭔지! what I tried 자바의 파일 구성을 훑어보며 모르는 내용을 검색하고 찾아보았다. my answer - 모듈은 뭘까? 모듈은 왜 쓸까? 먼저 모듈은 패키지의 캡슐화를 보완하기 위해 등장했다. 클래스는 패키지 내부에 숨길 수 있는데, 패키지는 어디에 숨겨둘까! 어디에 숨겨두고 내부에서만 사용할 수 있는 방법이 없었기 때문에 문법적으로 패키지를 숨기기 위해 모듈이라는게 만들어 졌다고 한다. 자바 프로젝트를 실행시켰을 때 내부 디렉토리를 봐도 알 수 있듯이, 모듈 - 패키지 - 클래스 - 인스턴스 의 흐름으로 그 관계를 대략적으로 이해할 수 있었다. - jdk? 자바의 3대 구성요소 중 하나! jdk / jvm ..
항해99 부트캠프의 1주차가 지났다. 첫 협업을 거쳐가며 작은 규모의 팀 프로젝트에서는 어떻게 일을 분배할지, 어떻게 협업을 진행할 지에 대한 부분을 배웠다. 당연한 얘기지만 코드를 짜는 것도 배워가는 것이 많았다. 그 중에서도 이번주에 배운 것 중에 제일 큰 것은 쿠키와 토큰이었다. 먼저 나는 JWT (JSON Web Token)를 사용했다. 말 그대로 JSON 객체를 사용하는 토큰이라고 볼 수 있었다. 그럼 우리는 왜 토큰을 이용할까? 그것은 안전한 API를 이용하기 위해! 토큰 기반 인증을 사용하면 내 서버에서만 시크릿 키를 통해 인코딩 / 디코딩을 거칠 수 있으니 보다 안전하게 이용이 가능하다고 이해했다. 더불어 여기서 stateless라는 개념도 추가로 알아보았다. 토큰은 서버에 저장하지 않고,..
problem 게시판에서 특정 글에 댓글을 달려고 할 때, 어떻게 처리해야 하는 지에 대한 문제가 발생했다. what I tried 일단 먼저 본 게시판의 특정 글에 인덱스를 부여하였다. 그럼 특정 게시글과 댓글을 인덱스로 이어줄 수 있을 테니까! 여기까지 맞았다고 생각한다. DB에 올리는 것까지도 문제 없음. 당연하게도 문제는 get으로 찍어줄 때 발생. html틀을 만들고 거기에 선택자를 이용해 append하는 방법을 생각했는데 로직에 빵꾸가 났다 계속 그렇게 어렵지도 않은데 계속 삥삥도는 느낌. my answer 일단 틀을 어디까지 할 지에 대한 범위가 중요했다. 로직에 포함되는 버튼을 자꾸 빼먹고 마구잡이로 코드를 짜다보니 계속 삥삥 돌게 되었다. 참 지저분한 코드지만 일단 되긴 하니까.. 인덱스..
problem 몽고db에 있는 자료 중 특정 value를 일괄적으로 변경할 필요가 있어, 명령어를 실행하였으나 하기 오류가 발생함 what I tried 난 update명령어를 사용하였는데, 내가 파라미터를 빼먹었나 싶어 먼저 검색을 해 보았다. 구글에서 multi라는 옵션에서 boolean을 true로 해 줘야 한다고 해서 {multi: True}라는 파라미터를 추가했는데, 실행시키니 이것을 인식시키지 못했다. my answer 뭔가 메소드 없다고 하는 게 이상했다. 다른 사람들은 있다고 하는 것이 없으니. 메소드가 없다고 하는 것이면 pymongo에 문제의 원인은 pymongo에 있다고 판단했다. 다시 검색해보니 버전이 다른 게 문제였다. 이젠 update가 아니라 update_many란다. I Le..
221207 problem 팀원들이 작업한 branch를 merge하려니 더 많은 conflict를 마주했다. what I tried 처음엔 그냥 폴더를 clone해서 conflict를 제거하는 방식을 생각했다. 하지만 실천에 옮기기 전에 뭔가 이건 너무 아닌 것 같은 생각이 들어 이 해결방안은 시도하지 않았다. 번거롭기도 하고, 이건 임시방편이지 근본적인 해결이 되지 않기도 한 것 같다. 어떻게 할지를 고민하다가, 혹시 깃허브에서 추천하는 방법이 있지 않을까 해서 PR페이지에서 merge할 수 없다는 부분을 좀 더 들여다 봤다. 프로그램은 지금의 나보다 똑똑할 테니까! my answer 해결방법은 단순하기도 하고 당연한 방법이었다. 예를 들어 temp라는 branch를 main에 합치고 싶은 상황이라면..
problem 회원가입을 진행시에 유효성 검사를 어떤식으로 진행할지에 대한 것 what I tried 사용자로부터 정보를 제공받는다면, 해당 정보를 charAt으로 받아서 char 하나 하나가 내가 생각한 조건들이 포함되어있는 지를 검사하고자 하였다. 하지만 코드가 너무 길어지고 숫자와 문자열이 섞여있을때 대처가 되지 않는 문제도 있었다. my answer 먼저 사용자가 입력하는 입력 필드를 전체 동일한 class로 받는다! 이후 해당 class의 입력 정보들을 전부 모아서 querySelectorAll으로 리스트를 만들었고, 해당 리스트를 정규표현식을 이용하여 내가 원하는 조건이 포함되어있는지를 검사하는 방식을 이용했다. 정규표현식을 이용하니 코드가 더 간결해졌고 내가 설정한 조건 중에서 입력한 정보의..
참고! Ajax는 jQuery를 임포트한 페이지에서만 동작 가능합니다. 즉, http://google.com/ 과 같은 화면에서 개발자도구를 열면, jQuery가 임포트 되어있지 않기 때문에 아래와 같은 에러가 뜹니다. Uncaught TypeError: $.ajax is not a function → ajax라는 게 없다는 뜻 $.ajax({ type: "GET", // GET 방식으로 요청한다. url: "", data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요) success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음 console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성 } }) a..
이미지 어둡게 하기 linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)) 주석 단축키 주석처리하고 싶은 라인들을 선택 → ctrl(또는 command) + / (슬래시) style 너무 길어져서 좀 줄이고 싶을때 - css분리하기 자주 쓰이는 css h1, h5, background-image, background-size, background-position color, width, height, border-radius, margin, padding margin은 외부 여백 padding은 내부 여백 flex로 정렬하기 웹사이트 참고 https://velog.io/@jary/flex%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%..
- Total
- Today
- Yesterday
- 부하테스트시나리오
- jmeter테스트
- jwt
- Python
- Redis
- bankersRounding
- Lock
- jmeter쿠키
- 스프링faker
- 인덱스
- 동적크롤링
- pessimisticlock
- Redisson
- jmeter세션
- CorrectnessAndTheLoopInvariant
- Java
- CheckedException
- jmeter토큰
- 항해
- jmeter부하테스트
- jmeter시나리오
- 프로그래머스
- Spring
- 자바
- 대규모더미데이터
- EC2
- index
- hackerrank
- 토큰
- jmeter로그인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |