전체 글

기록합시다.
JAVA

[Java] TDD와 예제와 연습 , querydsl 슬라이싱 테스트 설정

🦐 TDD를 처음 접한것은 채용 공고에서였다. 우대사항에는 TDD를 쓴다는 얘기가 상당히 자주 보였다. 최근 TDD는 죽었다라는 자동완성이 보이는 것을 보면 TDD에 대한 회의감이 드는 개발자가 많아 보인다. 왜 유행했는 지, 비판받는 지, 궁금하니까 직접 해본다. TDD ? TDD(Test Driven Development) 소프트웨어 개발 방법 중 하나로, 테스트를 먼저 작성하고 이를 통과하기 위한 코드를 작성하는 것. 소프트웨어 개발 프로세스를 효율적이고 안정적으로 만들며, 품질을 높이는 데에 기여한다. 절차는 다음과 같다. 1.테스트 작성 먼저 테스트 케이스를 작성한다. 이때 테스트는 실패하는 것을 기대한다. 테스트 케이스는 코드 작성 전에 미리 작성되며, 명확하고 간결한 요구사항을 가지고 있어야..

TIPS

Intellij 처음 시작 시, 프로젝트 선택 화면 설정

FILE > Settings... Reopen projects on statup을 체크 해제한다. 그리고 재시작 해보자 잘 나옵니다.

PYTHON

[Python] django ktx project 계획

🦐 명절마다 1시간 동안 KTX 기차 예매를 위해 새로고침하는 게 지쳐서, 내 표를 찾아 예매해주는 프로그램을 구현하려고 한다. ( KTX API에는 표 예매 API가 존재하지 않으므로, 동적 웹 크롤링을 해야 한다. ) 직장 생활과 병행하며 1달 정도 소요 할 예정이다. 따라서, 목표는 KTX를 표를 이 프로젝트를 통해 예매 생각이다. 프로젝트 구성 : pycharm pro / python 3.8.6 / django 3.2 / react / oracle cloud / 왜 python 인가? 1. 문법이 쉽고 가독성이 높다는 장점 2. 스크립트 언어이므로, 컴파일 없이 실행 결과를 바로 확인 가능. 3. 러닝 커브가 낮다. 4. 빠른 개발 속도. 1번과 이어지는 항목이다. -- 빠르게 개발해야 하므로, ..

Effective Java

[아이템 13] clone 재정의는 주의해서 진행하라

clone은 객체를 복사한다. Cloneable 구현 예시 public class TestCloneDto implements Cloneable { private String name; private String email; public String toString () { return " name : " + name + " email : " + email; } public TestCloneDto(String name, String email) { this.name = name; this.email = email; } @Override protected TestCloneDto clone() throws CloneNotSupportedException { return (TestCloneDto) super.c..

Effective Java

[ 아이템 12 ] toString

업무 중에 습관적으로 toString을 쓰곤 했다. 객체의 값을 확인하거나. 아무생각없이 리스트의 목록을 값을 확인해볼때에도, 디버깅 할때에도 로그를 toString으로 쓰면서 디버깅 해본적도 꽤많았다. Object 의 기본 toString 메서드는 상당히 불편하다. 리액트로 개발을 할 때에는 자바스크립트에서 대충 console.log를 찍으며, 디버깅을 해도 값을 모두 확인해서 나름 편리하다? 라고 생각하며 개발을 했었기에, 다시 자바로 돌아와 개발 할 때에는 불편함을 더 많이 느꼈다. 앞 장인 equals 와 hashCode 아이템만큼의 중요성은 없지만 스스로 아무 생각없이 쓰던 함수이기에 정리해본다. 새로이 알게 된 내용은 다음과 같다. 사용자가 직접 호출하지 않더라도 java 어딘가에서 상당히 많..

JAVA/SPRING

[Spring] Spring / Spring boot 특징 간단 정리.

JDK 17 을 서포트하는 spring 6.0대 버전이 등장했고, Spring Boot 3.0 도 java 17을 최소 버전으로 요구하기 시작했다. LTS 버전이 java 11 이후 17 버전으로 확장 되었다. Java 17에서는 많은 기능이 추가되고 향상되었지만, 현재 쓰는 11버전 이후에 추가된 (개인적으로 써보고 싶은) 기능들은 다음과 같다. 텍스트 블록 기능. 향상된 Switch 문 및 패턴 매칭 기능. Record 불변 객체 타입 ( Lombok 의 value) 프로퍼티 포함 생성자 private final 적용 getter 메소드 생성 toString, equals, hashcode method 생성 annotation울 붙이도록 허용. Sealed class 허용된 (permits) 클래스 ..

ALGORITHM

백준 1012 유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class 백준1012유기농배추 { static int[][] baecho; static int M; s..

JAVA

[JAVA] Gabage Collection

→ 가비지 컬렉터(GC) 애플리케이션의 동적 메모리 할당 요청을 자동으로 관리한다. 운영 체제에서 메모리를 할당하고 반환. 애플리케이션이 요청할 때 해당 메모리를 애플리케이션에 전달. 응용 프로그램에서 아직 사용 중인 메모리 부분을 확인. 애플리케이션에서 재사용할 수 있도록 사용하지 않은 메모리를 회수. JAVA는 프로그램 코드에서 메모리를 지정하거나 해제하지 않는다. 객체를 Null로 지정하는 것은 상관없지만, System.gc()메서드를 호출하는 것은 시스템의 성능에 매우 큰 영향을 끼친다. * System.gc() 메서드는 가비지를 탐색 및 정리하는 작업이고 상당히 무거운 작업이다. 공식 문서에 따르면 대부분의 VM 종료시까지 유지되는 초기화 시 할당된 객체 외에는 위의 그림과 같은 그래프에 해당한..

SERVER

[SERVER] docker / centos 8 / oracle cloud

😢 oracle cloud의 centos 8 에 docker를 설치해서 spring boot 프로젝트를 구동해본다. 도커 : 가상의 공간을 이미지로 만듦. 하나의 이미지를 통해 여러개의 컨테이너를 만들 수도 있음. 이러한 과정이 완전히 독립된 가상의 공간에서 실행된다. 그냥 호스트의 포트를 컨테이너의 포트로 연결하기만 하면 된다. 도커 이미지는 Dockerfile이라는 파일로 관리하고, 컨테이너 실행 시, docker-compose 파일을 이용한다. VMware 같은 가상머신과 달리 host OS 위에 또다른 OS를 띄우는 것이 아닌 같은 OS에서 프로세스를 격리 시켜 실행하기 때문에 실행 속도가 빠르고, CPU , memory , network 성능 저하가 거의 없다. docker 설치 이전에 yum-..

SERVER

[SERVER] GitLab CI CD / oracle cloud / docker

The One DevOps Platform From planning to production, bring teams together in one application. Ship secure code more efficiently to deliver value faster. about.gitlab.com GitLab : 중앙 서버에서 Git 저장소를 관리하며, CI / CD 를 통해 DevOps 환경을 구축할 수 있게 도와준다. CI / CD 는 지속적 통합, 지속적 서비스 제공, 지속적 배포를 말한다. 😒 개발팀에서는 보통 메인 리포지토리에 주기적으로 머지 또는 push 한다. CI 원칙을 통한 MERGE → 자동으로 팀에서 만든 CI 스크립트를 통해 빌드 및 유닛 테스트 및 기타 등등을 스크립트등을 통..

girin_dev
girin_dev