개발 관련 부가 지식 (31) 썸네일형 리스트형 Java Queue 구현 Queue은? FIFO(Firs-In First-Out) 형태의 자료 구조 ✔ Queue 자료 구조 java로 구현해 보았다. -> MyNode라는 객체를 가지고 로직 구현을 함, MyNode는 입력데이터와 다음 MyNode의 주소 값을 가지고 있음 -> MyNode를 MyQueue 안에 정의하는 이유는 MyNode 의 private 필드를 접근하기 위함 ✔ Queue의 메소드 👀 ->add() : 맨 끝에다 데이터 추가 ->remove() : 맨 앞 데이터 꺼냄 ->peek() : 맨 앞 데이터 보는 것 ->isEmtpy() : Queue가 비었는지 확인 public class MyQueue { class MyNode { private T data; private MyNode next; public M.. Java Stack 구현 Stack은? LIFO(Last-In First-Out) 형태의 자료 구조 Stack 자료 구조 java로 구현해 보았다. -> MyNode라는 객체를 가지고 로직 구현을 함, MyNode는 입력데이터와 다음 MyNode의 주소 값을 가지고 있음 public class MyStack { class MyNode { private T data; private MyNode next; public MyNode(T data) { this.data = data; } } //-------------> Stack은 LIFO 구조로 top만 클래스안에서 직접 관리 private MyNode top; //-------------> push를 할때마다 top의 node를 바꿔줘야함 //-------------> (1). 기.. spring.jpa.open-in-view 란? 스프링 부트로 프로젝트로 만들고 실행을 시키면, WARN 이 하나 나온다. (spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explictily configure spring.jpa.open-in-view to disable this warning) application.properties에서 spring.jpa.open-in-view=false 로 하면 경고문은 사라지는데 그럼 여기서 open-in-view 설정은 뭐를 의미할까? (open-in-view의 기본 설정은 true) open-in-view 란? open-in-view는 JPA에서 영속.. 자바 객체 타입은 불변으로, 비교 방법 (공유참조, 값 복사) 자바의 객체타입과 기본타입에 = 연산 시 다른점을 정리해보고자 한다. 🤔 // 기본타입 자바의 기본타입(primitive type) 종류 byte: 8비트의 정수 타입 short: 16비트의 정수 타입 int: 32비트의 정수 타입 long: 64비트의 정수 타입 float: 32비트의 부동 소수점 타입 double: 64비트의 부동 소수점 타입 char: 16비트의 유니코드 문자 타입 boolean: 논리 타입 -> 자바 기본 타입은 = 연산 시 값이 복사가 된다. int a= 10; int b = a; b = 4 // b 값을 바꿔도 a는 10 유지 따라서, 기본타입은 값이 복사되어 서로 영향을 받지 않는다. // 객체 타입 - 문제 파악 이제 객체타입을 보자. public class Main { p.. 스프링 JPA 사용, 프록시 entity 확인 메소드 스프링 JPA 사용 시에 조회한 Entity 가 프록시인지, 초기화 됬는지 확인하는 메소드 정리 👀 EntityManagerFactory emf = Persistence.createEntityManagerFactory("name"); 프록시 초기화 여부 확인 emf.PersistenceUnitUtil.isLoaded(Objedct Entity) , ture false 로 나옴 프록시 클래스 확인 방법 entity.getClass() 출력 , javasist or HibernateProxy 나옴 프록시 강제 초기화 org.hibernate.Hibernate.initialize(entity) 👏 스프링 부트 동일 Apllication 여러 포트로 구동 with (인텔리제이) 인텔리제이로 스프링 부트 구동 시 application 을 다른 포트로 돌리는 방법 ✨ MSA 구조를 공부 하는 도중, 연습용으로 여러 포트의 어플리케이션 구동이 필요하였다. build를 한 후 터미널에서 java -jar를 통해 실행시킬 수도 있지만, 인텔리제이에서도 쉽게 구동할 수 있어 그 방법을 소개하려한다. 위와 같이 인텔리제이에서 같은 어플리케이션을 port 만 다르게 여러 서버를 쉽게 구동시킬 수 있다. 1. (1시 방향) Edit Configurations 열기 2. apllcation 클릭 후 Copy Configuration 클릭하여 복사 3. VM options 에 -Dserver.port=(원하는포트) 입력 후 apply -D는 자바 클래스를 실행함에 있어서 부가적인 옵션을 부가하는 .. 자바스크립트 Template Literal 기본적으로 쓰고는 있었지만, 찾아보고 정리해본 적이 없어서 이참에 간단히 정리해봄.. Template Literal (템플릿 리터럴) -> 내장된 표현식을 허용하는 문자열 리터럴이다. -> 이중 따옴표 나 작은 따옴표 대신 백틱(` `) 을 이용 -> 백틱(` `) 안에서 ${변수명} 를 통해 변수를 입력할 수 있고, 연산도 가능하다 -> 백틱(` `) 안에서 줄 바꿈, 띄어쓰기를 일반 타이핑 처럼 해도 문제가 없다. -> 템플릿 리터럴은 런타임 시점에 일반 자바스크립트 문자열로 변환 된다. ex) 변수 사용 예제 ex) 연산 예제 ex) 띄어쓰기 및 줄바꿈 예제 자바스크립트 (프론트) websocket event 정리 HTTP 프로토콜 이란? -> 기본 프로토콜인 HTTP는 우리가 알고 있듯이 🤷♂️ , 클라이언트에서 서버로의 요청만 가능하며 서버에서 클라이언트로 먼저 요청을 할 수 없다. -> 서버는 클라이언트를 기억하지 않음 Websocket 프로토콜 이란? -> 서로 양방향의 연결로, 서버단에서 먼저 클라이언트로 요청을 할 수 있다. (채팅에 필수) 👀 -> 서버가 클라이언트를 기억하고 있음 프론트단에서의 Websocket 연결 기본적으로 모든 브라우저에는 Websocket이 내장되어 있다. 따라서, 프론트엔드에서는 별 다른 import 없이 Websocket연결이 가능하다 😀 예시 const socket = new WebSocket("ws://localhost:8080") 또는 const socket = ne.. 이전 1 2 3 4 다음