드디어 항해99의 첫날이 끝났다....사전OT는 좀 무서웠다...ㅠㅠ9to9도 힘든데 새벽 2시까지 하게 될거라니.....수면부족인 나날을 보내게 될 예정이다..ㅠㅠ첫번째 팀플 첫날은 재밌었다! 팀원분들을 잘 만나서인지 서로 의견 나눔도 잘 되고 아이디어도 많이 나왔다
자바를 다시 배우게 되었다! 한참 파이썬만 쓰다가 자바를 다시 쓰려니 머리가 벌써 아파오는 기분...ㅠㅠㅠㅠ 그래도 배웠던게 있으니 수월하겠지!일단 기본 개념부터 정리해보려고 한다!하나의 변수는 단 하나의 값만 저장할 수 있다.변수에 저장된 값은 재할당을 통해 변경될
다음 코드를 실행하면 출력 결과로 5를 기대했는데 4가 출력되었습니다. 어디에서 잘못 작성된 것일까요?다음 코드를 실행했을 때 출력 결과는 무엇입니까? (증감연산자에 대해 알아보세요!)while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때
프로그래머스 코딩테스트 연습 하면서 알게되는 함수들이 많다! 정리해보자~!!!falsetrue
Intellij - Settings - Editor - Live TemplatesC : Surrond with Callablefori : Create iteration loop geti : inserts singleton method getinstanceifn : in
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.위의 코드를 보고 충격받아서 정규표현식을 공부해보기로 했다....
int\[] 는 객체가 아닌 primitive type 이기 때문에 Integer\[] 로 변환 후 사용해야 한다.새로운 방법을 알게돼서 추가한다!!!내가 더 친근한 방법은 아래의 방식인데....뭔가 위의 방식이 세련돼보인다.String 타입과 숫자를 더하면 Strin
가장 작은 수 제거하기.....쉬워보였는데 어려웠다!정리는 다음에ㅠㅠㅠㅠㅠ머리아파
주어진 값을 2로 나눈 나머지를 문자열에 더해간다. 이때 뒤에서부터 더해가야 하기에 새로 더해주는 값은 문자열의 앞에 더해준다. 만약 int형의 진법을 바꾸고 싶다면 먼저 문자열 형태로 변환해야 한다.마지막 숫자부터 얻기 위해서 주어진 num을 10으로 나눈 나머지를
역시 스트림 최고다...정말 다양한 문법 사용이 가능한 것 같다....
프로그래머스 문제랑 너무나도 비슷해서 좋았는데 자세히 보니 응용할 부분이 있었다.... 뭔가 두가지 문제를 섞어놓은듯한 느낌?Stream은 쓸수록 신기하고 유용한 것 같다. anyMatch는 알고만 있었고 써보진 못했었는데 이번 기회에 사용하게 되어서 기분 좋다.람다식
메서드 영역 : 클래스, java.lang 저장되면서 실행이 된다.스택 영역 : Stack Frame(중괄호의 코드 블럭 단위), 지역변수, 매개변수, 메서드main 메서드는 프로그램의 시작과 끝main 메서드 종료시 JVM 셧다운힙 영역 : Object(프로그램에서
make sure your own configuration does not rely on that class. this can also happen if you are @componentscanning a springframework package (e.g. if yo
Spring Boot 공부를 드디어 시작하였다. [Spring 3계층] 1. Controller Controller는 Request에 대한 응답 처리를 맡고 있으며 다른 URL을 이용해 서버에서 처리된 데이터를 각기 다른 화면으로 보여주는 역할을 한다. 클라이언트와
1\. Client → DispatcherServlet \- 가장 앞 단에서 요청을 받아 FrontController 라고도 불림DispatcherServlet → ControllerAPI 를 처리해 줄 Controller 를 찾아 요청을 전달Handler map
객체 지향 프로그래밍에서 부모 클래스의 멤버를 자식 클래스에게 물려주는 것을 상속이라고 부릅니다. 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정하고 선택된 부모 클래스는 extends 뒤에 써줌.여러 개의 부모 클래스를 상속할 수 없으므로 exten
다형성은 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질다형성을 구현하려먼 메소드 재정의와 타입 변환이 필요함클래스의 변환은 상속 관계에 있는 클래스 사이에서 발생하며, 자식은 부모 타입으로 자동 타입 변환이 가능함자동타입변환(pro
실체 클래스(객체 생성용 클래스)들의 공통적인 특성(필드, 메소드)을 추출하여 선언한 것추상 클래스와 실체 클래스는 부모, 자식 클래스로서 상속 관계를 가짐추상 클래스부터 만들고 실체 클래스를 만드는 것이 일반적실체 클래스에 반드시 존재해야할 필드와 메소드의 선언실체
@NoArgsConstructor : 파라미터가 없는 기본 생성자를 생성@RequiredArgsConstructor : final이나 @NonNull인 필드 값만 파라미터로 받는 생성자@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자 생성
Builder란 생성자의 매개변수가 많을 때 좀 더 편리하게 객체를 만들 수 있게 도와주는 것입니다.Builder 패턴은 점층적 생성자 패턴의 안정성과 자바빈즈 패턴의 가독성을 겸비한 패턴입니다.클라이언트는 필요한 객체를 직접 만드는 대신에 필수 매개변수만으로 생성자
JSON 파일 형식을 받을 때 responsebody + controller가 결합된 어노테이션@ReqeustMapping 어노테이션 값으로 {템플릿 변수를 사용}.@PathVariable 어노테이션을 이용해서 {템플릿 변수}와 동일한 이름을 갖는 파라미터 추가.nul
gradleruntimeOnly 'com.h2database:h2'maven인메모리 방식위 방식은 스프링부트 어플리케이션이 실행됐을때 메모리 내에서 동작하고 어플리케이션 종료시 데이터가 사라진다. 따라서 간단한 CRUD 기능을 테스트하기에 적합하다.따라서 기존 사용하던
👉 ProductService 가 생성될 때, 딱 한 번 생성해서 계속 사용하면 어떨까요?
텍스트 형태의 JSON을 object로 변경해 주거나 object를 텍스트 형태의 JSON으로 변경해 주는 것을 의미한다.예를 들면 컨트롤러에 요청이 오면, Content-Type이 JSON타입인 것을 object로 변경을 해주고, 처리 후 응답으로 클라이언트에 자동으
초기화시 변수에 값을 할당할 공간을 메모리에 만들게 된다.만약 초기화나 값 할당이 정상적으로 이루어지지 않으면 NullPoniterException 에러가 뜬다.변수에 이름을 잘못 넣거나 if문을 잘못 돌리면 이 에러가 뜬다.null을 가진 힙메모리의 객체를 호출하면
인증 : 사용자 신원을 확인하는 행위인가 : 사용자 권한을 확인하는 행위웹에서의 인증/인가인증 : 로그인을 통해 본인임을 확인인가 : 주로 역할에 따른 사용 권한 관리HTTP(HyperText Transfer Protocol): 웹 상에서 데이터에 대한 요청과 응답을
ORM: Object-Relational MappingObject: "객체"지향 언어 (자바, 파이썬)Relational: "관계형" 데이터베이스 (H2, MySQL)Java Persistence API자바 ORM 기술에 대한 표준 명세하이버네이트 (Hibernate)
영속성이란 데이터 또는 어떠한 값이 유실되지 않고 유지되도록 하는 성격컨텍스트란 스프링부트 내의 임시 저장소 영속성 컨텍스트란 스프링 부트 내부에서 데이터가 유실되지 않도록 잠깐 저장하고 있는 공간백엔드 서버에서 DB를 조회하는 횟수를 줄일 수 있음DB row 1개당
ERD 설계 에시하늘색 열쇠 : 외래키User와 Food의 관계 : N 대 N
JPA 를 편리하게 사용하기 위해, 스프링에서 JPA 를 Wrapping스프링 개발자들이 JPA 를 사용할 때 필수적으로 생성해야 하나, 예상 가능하고 반복적인 코드들 → Spring Data JPA 가 대신 작성Repository 인터페이스만 작성하면, 필요한 구현은
Spring JPA 에서는 Pageable을 활용해서 Pagination을 구현할 수 있다.‘page=3&size=10&sort=id,DESC’ 형식의 쿼리 파라미터를 요청하면 된다. 예시 코드 1 )ProductController예시 코드 2 ) ProductServ
부가기능을 모듈화AOP (Aspect Oriented Programming) 를 통해 부가기능을 모듈화'부가기능'은 '핵심기능'과는 관점(Aspect), 관심이 다름따라서 '핵심기능'과 분리해서 '부가기능' 중심으로 설계, 구현 가능Aspect: Advice + Po
ACID (원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어더 이상 쪼갤 수 없는 최소단위의 작업모두 저장되거나, 아무것도 저장되지 않거나를 보장함예기치 못한 상황이 DB에 반영되는 것을 막을 수
웹은 기본적으로 HTTP라는 프로토콜을 사용하여 서버간 통신을 한다.웹서버는 HTTP 프로토콜을 기반으로 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 받아들이고 HTML, 이미지파일, CSS 같은 문서 또는 리소스 데이터(정적 컨텐츠)를 반환하는 역할을 하는 프로
ORM = Object Relational Mapping 객체-관계 매핑 객체와 관계간의 불일치를 해결하기 위해 반들어진 개념 ORM의 장점 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 집중할 수 있도록 도와준다. 선언문, 할당, 종료 등의
영속성 컨텍스트란 엔티티를 영구 저장하는 환경 이라는 뜻이다.영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나만 만들어진다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있고, 영속성 컨텍스트를 관리할 수 있다.엔티티 매니저를 만드는 공장엔티티 매니저 팩토리는 생
JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다.@Entity가 붙은 클래스는 JPA가 관리하고, 엔티티라 부른다.@Entity 적용 시 주의사항기본 생성자가 필수(파라미터가 없는 public 또는 protected 생성자)fi
댓글과 대댓글에 둘다 더보기 기능이 있을 때 두 부분 모두 페이징 처리를 해야했던 부분이 어려웠어서 저의 코드를 공유해보려고 합니다.아직 미숙한 부분이 많아서 부끄럽지만 그동안 구글링의 도움을 많이 받은만큼 저도 누군가에게 도움이 되길 바라며 이 포스팅을 작성합니다.C
페이징 처리를 위해서 repository에서 pageable 파라미터를 넣어서 쿼리문을 작성하였다.그런데 Paging query needs to have a Pageable parameter; Offending method: public abstract org.spri
여러개의 String 결과값을 List에 넣고, 그 List에서 중복되는 값의 count를 세어야 했다.열심히 구글링 해본 결과Collections.frequency 라는 함수가 있었다.위에서 사용한 예 처럼int count = Collections.frequency(
WebSocketHTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜로써 80port를 사용하여 방화벽에 제약이 없다.기존의 HTTP를 사용한 통신은 클라이언트의 요청 -> 웹서버의 응답 -> 연결 종료의 과정이였는데 WebSocket을 사용하면 웹
현직 개발자 분에게서 한 권의 책을 추천 겸 선물 받아서 책의 내용을 정리 해보려고 한다.알고있던 내용과 모르고 있던 내용 모두 꾸준히 정리해서 필요할 때 내가 꺼내보려고 작성하는 글이다.CPU : 컴퓨터의 머리HDD(하드디스크), SSD : 보조기억장치, 컴퓨터의 창
프로그램을 만든 뒤에는 프로그램의 통합된 각 모듈이 계획대로 잘 작동하는지, 시스템의 실제 동작과 원래 의도했던 요구사항과의 차이는 없는지 판단해야 한다.또한 수행 시간, 파일 저장 및 처리 능력, 최대 부하 등의 점검이 필요하다.JMeter는 프로그램의 부하를 테스트
TDD 이전의 개발 방식은 코드 개발 시간만큼 디버깅 시간에도 많이 투자해야했다.TDD는 테스트를 먼저 하고 그 다음 구현을 한다. 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다.테스트 코드를 작성 후 메서드 이름, 파라미터의 갯
SELECT 열 이름FROM 테이블이름WHERE 조건을 사용해서 사용할 데이터베이스 지정\-- 한 줄 주석 (-- 뒤의 공백 유의)/\* \*/ 여러줄 주석SHOW DATABASES;USE databaseName;SHOW TABLE STATUS;현재의 데이터베이스에 있
"spring-boot-starter-test" 디펜던시를 추가했다면 JUnit을 위한 추가 디펜던시는 필요하지 않다.스프링부트는 애플리케이션 테스트를 위한 많은 기능을 두 가지 모듈로 제공한다.spring-boot-test : 핵심 기능 포함spring-boot-te
제이미터 설치 사이트 https://jmeter.apache.org/download_jmeter.cgi위의 사이트에 들어가서 아래의 색칠된 파일을 깔아준다.(윈도우 기준)설치 경로의 apache-jmeter-5.5\\bin 에 들어가면 jmeter.bat파일이
https://github.com/scouter-project/scouter위의 사이트에서 Latest Release 버튼을 눌러 최신 버전 파일 다운로드 사이트로 들어가서 최신 버전을 확인해서아래의 명령어에 v 뒤의 숫자를 조정해준다.(최신 버전으로 업데이트
Transaction Per Second(TPS)는 초당 트랜잭션의 개수실제 계산하는 방식은 일정 기간 동안 실행된 트랜잭션의 개수를 구하고 다시 1초 구간에 대한 값으로 변경서비스에 사용자가 지속적으로 늘어나면 어느 순간부터 TPS가 더이상 증가하지 않는 상황이 발생
단위/성능/스트레스 테스트 등 많은 곳에서 활용 가능하다.범용으로 사용되는 대부분의 프로토콜을 지원한다.통신 프로토콜 단계에서만 동작하고 웹 브라우저에서는 동작하지 않는다.즉, 클라이언트와 서버 간 메시지의 송수신만 가능하다.Throughput: 단위 시간당 대상 서버
부하 테스트와 스트레스 테스트의 차이점이 헷갈려서 정리하는 글이다.어플리케이션 실행 시 필요로 하는 리소스의 허용하는 한도를 넘어서서 비정상적인 높은 부하를 발생시켜보는 테스트를 말한다.일정 한도를 넘어서는 부하 상항이 되면 시스템의 비정상적인 작동이 유발될수도 있는데
sudo apt-get remove docker docker-engine docker.io containerd runc위의 명령어 입력했는데 E: Package 'docker-ce' has no installation candidateE: Unable to locate
DB 상태 -> 아직 아무런 인덱스 생성X평균 응답시간 : 1158.68 (MS)평균 응답시간 : 3608.43 (MS)순수 java 언어를 사용한 오픈소스 소프트웨어로, 다른 테스트 도구들보다 좀 더 웹 서버 테스트에 특화되어 있습니다.또한 Java Script를 수
우리 팀이 작성한 코드가 제대로 잘 동작하는지 시험 해보고, 테스트 코드 작성을 어떻게 하는지 공부해보기 위해서 스프링 부트에 내장되어있는 JUnit을 이용해서 MemberController 클래스의 테스트 코드를 작성해보았다.버전은 JUnit5를 사용했으며 크게 맞닥
제이미터로 성능 테스트를 하던 중 이상하게 평소보다 훨씬 TPS가 낮은 것을 발견했다. index 유무 차이 테스트이고, 테스트 부분인 mainPage의 코드는 바뀐게 없는데 이상하게 너무 느려서 gitbash 창에서 리눅스 상태 확인 명령어인 top 을 사용해서
SDK : API를 제공해주는 다른 소프트웨어(Software Development Kit) \- oo 소프트웨어를 개발할 때 도움을 주는 다른 소프트 웨어 HTML : 프로그래밍 언어가 아닌 단지 브라우저가 볼 수 있는 문서를 적는 언어세계적으로 가장 큰 점유
함께 일하고 싶은 개발자가 되고싶습니다. 의사소통 능력이 뛰어나고, 피해를 주는 게 아닌 도움을 주는 개발자가 되는 것이 목표입니다.그리고 단순히 기능 구현에서 끝나는 것이 아니라 왜-어떻게-무엇을 결정하게 되었는지 타인에게 설명할 수 있도록 깊게 생각하는 개발자가 되
[예시 질문] 오늘 진행된 강의를 통해 새롭게 알게된 점은 무엇인가요? 지금까지 학습한 내용을 모두 적용해서 이력서 만들기 경력/학력 사항을 정리할 때 '내가 답변할 수 있도록' 준비 이력서에 작성된 모든 항목이 '개발자'를 향하고 있는지 [느낀 점] 이력서
인사담당자는 이력서에 있는 정보만 얻을 수 있다.자세함/구체적은 이력서 길이에 비례하지 않는다.입사 의지가 뚜렷할수록, 매칭 적중률은 높아진다.내가 받는 결과에는, 대부분 이유가 있다.조건이 갖추어졌다면, 시도와 합격은 비례한다.기억이 생생한 시점에 & 빠른 이력서 =
그동안 마구잡이로 이력서를 지원한 것이 후회가 되었다.JD에 적혀있는 내용들을 제대로 보고, 분석하고, 부족한 부분을 보완하고그에 맞게 지원동기까지 작성하는 연습을 해야겠다.요새 면접 일정 때문에 제대로 항해에 참여하지 못했다ㅠㅠ부족한 부분 얼른 따라가야겠다...!!!
이력서에 어떤 내용을 넣고 덜어야 하는지 알게되었다.포트폴리오에 있는 내용들을 링크로 걸기 전에 핵심 내용들을 뽑아서 미리 작성해야 하는 걸 깨달았다.이력서 가독성에 대해 피드백 받고 이력서와 포트폴리오를 전반적으로 수정하였다.이력서, 포트폴리오를 손봐주신 임인혁 매니
오늘 면접에 다녀오느라 알고리즘 강의도 못듣고, 팀 회의에도 참석하지 못했다...그래도 1,2주차 팀원분들을 잘 만난 것 같다.같이 힘듦을 공유하니까 왠지 덜 힘든 것 같다.