전체 글122 에러 : Unsupported or unrecognized SSL message 결론 : http만 지원하는 서버에 https로 요청하여 발생한 문제였습니다. (URL 확인) Unsupported or unrecognized SSL message 서버 (8080) 포트에서 서버 (8081) 포트로 접속을 하려고 에러가 발생했습니다. 8080 서버 측 서비스 코드 (테스트 코드 실행) //service public void postGearEntity() { RestTemplate restTemplate = new RestTemplate(); String url = "https://localhost:8081/give-me-beer"; // RestController BeerPostDto dto = new BeerPostDto(); String response = restTemplate... Spring,SpringBoot 2023. 7. 5. 자바 객체 복사 방법(얕은 복사, 깊은 복사) 자바 객체 복사 방법 자바에서는 객체를 복사하는 경우 참조 값으로만 복사가 됩니다. 하지만 상황에 따라 값 자체를 복사해야 하는 경우가 있습니다. 이렇게 자바의 복사 방법은 얕은 복사와 깊은 복사 두 가지 방법이 있습니다. 얕은 복사 얕은 복사(Shallow copy)는 객체를 복사할 때 원본 객체와 복사본 객체가 같은 객체를 참조하는 경우를 말합니다. 즉, 복사본 객체를 수정하는 경우 원본 객체도 변경 사항을 공유하게 됩니다. public class CopyObjectEx { private static class Point{ int x,y; public Point(int x, int y) { this.x = x; this.y = y; } public void setX(int x) { this.x = x.. JAVA/이펙티브 자바 2023. 7. 2. 인텔리제이 코딩 컨벤션 적용(구글 코딩 컨벤션) 인텔리제이 코드 스타일 설정 mac 기준 인텔리제이 내에서 세팅-> 코드 스타일에서 한 줄의 가로길이와 같은 세팅을 설정할 수 있다. 구글 자바 코딩 스타일 [구글 자바 스타일 가이드]https://google.github.io/styleguide/javaguide.html#s4.5-line-wrapping Google Java Style Guide 1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style i.. 카테고리 없음 2023. 6. 28. 5장 : 형식 맞추기 5장 : 형식 맞추기 🙂 프로그래머라면 형식을 깔금하게 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 모두가 그 규칙을 따라야 한다. 형식을 맞추는 목적 오늘 구현한 기능이 다른 누군가에 의해 수정될 확률을 아주 높습니다. 또한 많은 수정이 있어도 맨 처음 잡아둔 코드 스타일과 가독성 수준은 유지보수의 용이성과 확장성에 계속해서 영향을 미칩니다. 즉 원래 코드 스타일을 사라져도 개발자의 규칙과 스타일은 사라지지 않습니다. 이렇기에 초반 원활한 소통을 위해서 코드 형식을 정해두고 시작해야 합니다. 추천하는 코드 형식 적절한 행 길이를 유지하라. 반드시 지킬 규칙을 아니지만 바람직한 규칙으로 삼았으면 좋겠다. .. 책 리뷰/클린코드 2023. 6. 28. JpaAuditing을 이용해서 base entity 생성하기 JPA Auditing Auditing은 감사, 감시한다는 뜻으로 JPA를 감시한다는 의미입니다. 즉 JPA Auditing은 Java Persistence API(JPA)를 감시하며 엔티티와 관련된 이벤트를 추적하고 기록합니다. JPA Auditing을 사용하면 엔티티의 생성일(createdDate)과 수정일(lastModifiedDate)을 자동으로 관리하는 기능을 제공하여 개발자가 수정일과 생성일 등을 수동으로 관리하지 않아도 되는 장점이 있습니다. JPA Auditing 설정 하기 의존성 추가 dependencies { // 다른 의존성들... implementation 'org.springframework.boot:spring-boot-starter-data-jpa' } 추가로 propertie.. JPA 2023. 6. 24. 클린코드 4장 : 주석 4장 : 주석 주석은 오래될수록 코드에서 멀어진다. 프로그래머들이 주석을 유지하고 보수하는것은 현실적으로 어렵다. 또한, 코드는 변화하고 옮겨지면서 주석이 코드를 언제나 따라가지는 않는다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 부정확한 주석은 독자를 현혹하고 오도한다. 주석을 나쁜 코드를 보완하지 못한다. 코드에 주석을 추가하는 이유는 코드 품질이 나쁘기 때문이다. 표현력이 풍부하고 깔끔하며 주석이 없는 코드가 주석이 많이 달린 복잡하고 어수선한 코드보다 훨씬 좋다. 주석을 추가하기 위해 애쓰는 것보는 코드를 깨끗하게 관리하는데 시간을 보내라. 코드로 의도를 표현하라. 코드로 대다수의 의도를 표현할 수 있다. 많은 경우 주석으로 달려는 설명을 함수러 만들어 표현해도 충분하다. 좋은 주석 .. 책 리뷰/클린코드 2023. 6. 21. 스프링 부트, 임시 데이터 넣는 방법(데이터가 들어가지 않는 오류) 결론 임시 데이터를 넣는 yml 코드입니다. 현재 프로젝트 세팅은 Java 17버전에 Springboot 3.1.0을 사용합니다. spring: datasource: url: jdbc:sqlite:db.sqlite driver-class-name: org.sqlite.JDBC jpa: hibernate: ddl-auto: create show-sql: true database-platform: org.hibernate.community.dialect.SQLiteDialect defer-datasource-initialization: true # 데이터 베이스 초기화 시점을 지연시킨다. sql: #해당 부분을 추가합니다 init : mode: always 문제상황 spring: datasource: url.. 카테고리 없음 2023. 6. 15. 깃허브 풀리퀘,이슈 생성시에 디스코드 웹 훅 보내는 방법 1. 디스코드 내에서 웹 훅을 보낼 채널을 선택합니다. 2. 채널 편집 클릭 후 연동을 클릭하여 웹 훅을 생성합니다. 3. 생성한 웹 훅의 URL을 복사합니다. 기존 화면으로 돌아가면 아래와 같이 생성된 것을 확인할 수 있습니다. 4. 이제 풀리퀘, 이슈 생성을 하는 깃허브 repository에 들어가서 setting을 클릭합니다. 5. setting에서 webhooks를 클릭합니다. 6. 웹 훅을 생성하고 원하는 요구사항에 맞춰 웹 훅을 생성합니다. URL 부분에 방금 디스코드에서 복사한 URL을 붙이고 뒤에 /github를 연결해서 작성합니다. 이후에 웹 훅을 언제 보낼 건지에 대해 선택하여 webhook을 생성하면 됩니다. 끝! 이후에 이슈나, 풀리퀘, 브랜치 생성등이 발생하면 아래와 같이 hook.. 카테고리 없음 2023. 6. 15. IP란?, 클래스, 서브넷마스크, 공인IP/사설IP IP란? 컴퓨터 네트워크에서 장치들이 서로를 인식하기 위해 사용되는 특수한 번호입니다. 모든 네트워크 장치(라우터, 서버..)는 IP를 가지고 있습니다. IP주소를 이용하여 발신자가 수신자를 향하여 데이터를 전송합니다. IP는 고정된 IP를 할당받는 방법과 DHCP를 이용하여 동적으로 할당받는 방법도 존재합니다. IPv4(Internet Protocol version4) 32비트로 구성된 주소 체계로, 보편적으로 사용되는 버전입니다. 8비트 단위로 점을 찍어 4개로 구분 합니다. 8비트 단위를 옥텟이 이라고도 합니다. 8비트를 4개로 구분하여 10진수로 합니다. IPv4 주소는 네트워크 식별자와 호스트 식별자로 구성되며, 예를 들어 "192.168.0.1"과 같은 형식으로 표현됩니다. IPv4로 표현이 .. 카테고리 없음 2023. 6. 12. Java를 CLI 환경에서 실행하는 방법,intellij 에서 엔트리 포인트Main(String[] args) 인자설정 Java를 CLI 환경에서 실행하는 방법 1-1. 자바 컴파일 javac : 자바 소스를 컴파일 하여 실행가능한 byte code로 변환해 준다. (jdk에 포함된 도구) javac 실행 이후에 .class(JVM에서 실행되는 bytecod) 파일이 생성된다. //소스파일 경로명으로 컴파일 하는 경우 javac src/main/java/JavaGit.java //컴파일 하려고 하는 소스 파일의 경로로 이동해서 컴파일 하는 경우 cd src/main/java javac JavaGit.java 1-2. 실행 java : .class파일을 실행한다. main메서드가 있어야 하고, 메인 메서드가 프로그램의 엔트리 포인트로 동작한다. > java JavaGit usage: add, commit //인자값이 없는 .. 카테고리 없음 2023. 6. 7. mockito를 이용해서 외부 API mocking 테스트 시작 팀프로젝트를 내에서 기업의 사업자 번호를 확인하는 로직이 필요했는데 해당 로직을 팀원분께서 공공기관 API를 활용하여 해결할 수 있도록 코드를 작성해 주셨다. 하지만 회원 가입 로직을 작성하고 테스트하려 하는 과정에서 어떻게 테스트를 해야 하나에 대한 고민이 수중위로 올라왔다. 실제 서비스에서 단순히 한번 사용자를 만드는거라면 테스트 데이터를 만들어서 사용하면 되지만 기업회원이 회원가입을 하는 로직내에 포함되어 있는 사업자 인증 로직을 테스트 동작시마다 계속해서 API 요청을 하는 것은 무리라고 생각했다. 이 과정에서 과거 다른 개발자 분들이 말하시던 모킹을 해볼까 하는 생각이 들었다. 사실 현재 프젝에서는 컨트롤러 테스트 시에 mock mvc를 이용해서 테스트 하고 있어 mockito사용은 처음이.. 카테고리 없음 2023. 6. 7. 3장 함수 작게 만들어라 20줄도 길다. 2~5줄 구성하라 함수에서 들여 쓰기 수준은 1단이나 2단을 넘어서지 않아야 한다(다중 중첩 금지) 한 가지만 해라 함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 함수 내에 의미 있는 이름으로 추출가능한 부분이 있다면 함수가 분리 가능하다는 뜻이다. 함수당 추상화 수준은 하나로 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. 코드는 위에서 아래로 읽혀야 한다. -> 내려가기 규칙 Switch 스위치 문은 작게 만들기 어렵다. 하지만 switch문을 완전히 피할 방법은 없다. 하지만 switch 문을 저 차원 클래스에 숨기고 반복하지 않는 방법은 있다. -> 다형성을 이용한다. switch 문을 한 가지 단일 작업을 하기 어렵다는 점도 있다. 다.. 책 리뷰/클린코드 2023. 6. 5. 이전 1 2 3 4 5 ··· 11 다음