fee-fi-fo-fum
article thumbnail
웹소켓 이란?
BackEnd🧵 2023. 10. 28. 18:22

이번에 진행하는 2가지 프로젝트에서 웹소켓을 이용해서 채팅기능을 구현해야한다. 그전에 웹소켓이 뭔지 알아보도록 하자! 웹소켓(Web Socket)? 웹소켓 프로토콜은 클라이언트와 서버를 연결하고, 실시간으로 통신이 가능하도록 하는 프로토콜이다. 여기서 주목해야할점은 실시간이라는 점이다. HTTP 통신의 경우 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신이지만, 웹소켓은 양방향, 실시간 통신을 한다. 또한 웹소켓은 애플리케이션 계층에서 동작하며 HTTP와 다르게 상태(Stateful) 프로토콜이다. 연결을 맺기위해 한번의 핸드셰이크를 주고받고, 이후에 지속적으로 연결을 보장한다. 이는 매번 매세지 전송에 새로운 연결을 맺을 필요가 없어 효율적이다. 즉, 클라이언트와 서버가 한번에 연결을 ..

article thumbnail
TIL - JSP
BackEnd🧵 2023. 7. 20. 00:22

JSP(Java Server Pages) 란? JSP는 HTML 코드에 Java 코드를 넣어 동적인 웹페이지를 생성하는 것을 말한다. 학부에서 여러번 배웠지만 제대로 실습해보지 않은관계로 개념만 알고 있었는데 제대로 알고가자. JSP가 실행되면서 자바의 Servlet으로 변환이 되고 WAS에서 동작되면서 필요한 기능을 수행한다. 그리고 이렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다. 즉 Servlet으로 웹페이지를 구현하게되면 Java코드 내부에 Html 코드가 섞이게 되고, Html을 Java내부에서 구현하게 되면 굉장히 귀찮고 어려워진다. (2023.07.17 - [TIL📝] - TIL - Servlet 참고) JSP 동작방식 [JSP에 해당하는 서블릿이 없을경우] 1. JSP 페이지로..

TIL - 빈 스코프
BackEnd🧵 2023. 7. 15. 17:39

빈스코프란? 스코프는 번역 그대로 빈이 존재할수있는 범위를 뜻한다. 스프링에서 지원하는 스코프는 다음과 같다. 1. 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프. 2. 프로토타입 : 스프링 컨테이너는 빈의 생성과 의존관계주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹관련 스코프 1. request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 2. session : 웹 세션이 생성되고 종료될때 까지 유지되는 스코프 3. application : 웹의 서블릿 컨텍스와 같은 범위로 유지되는 스코프

article thumbnail
TIL - 의존관계 자동주입, 빈 생명주기 콜백
BackEnd🧵 2023. 7. 15. 01:37

Lombok lombok에서 @RequiredArgConstructor > 자동으로 필드에 final이 붙은 변수를 생성자로 만들어준다. 현업에서도 거의 롬복을 많이 사용한다. 조회 bean이 2개 이상일때 @Autowired 매칭 순서 Autowired는 처음에 타입매칭을 시도 그리고 여러 빈이 있으면 이름, 파라미터 이름으로 빈이름을 추가 매칭한다. @Quilifier 사용 추가 구분자를 붙여주는 방법이다. 이름을 변경하는것은 아님. @Quilifier 끼리 매칭된다, 빈이름을 매칭시킨다. @Primary 사용 @Primary를 넣어주면 우선순위를 부여해서 다른것들을 무시하고 최상위로 의존관계가 주입된다. 메인데이터의 경우에는 @Primary를 지정해서 조회하고, 서브 데이터의 경우에는 @Qualif..

[Error] String.isEmpty() / String.isBlank()
Error Logs🐾 2023. 5. 17. 11:13

😎Error Log 데일리코딩 문제를 풀던중 if(element.isBlank())를 사용했다. 로컬에서는 정상적으로 돌아갔지만 코플릿에서는 에러가 발생했다. 찾아보니 자바 버전문제였다..! isBlank()가 자바11부터 사용가능한것때문... isBlank() : 주어진 문자열이 빈문자열이거나, 공백(" ")을 갖는 문자열이면 true, 아니면 false isEmpty() : 주어진 문자열이 빈문자열이면 true, 아니면 false. String str1 = "strstr"; String str2 = " "; String str3 = ""; System.out.printf("empty? %b, blank? %b\n", str1.isEmpty(), str1.isBlank()); System.out.pri..

article thumbnail
TIL - JVM(Java Virtual Machine)
BackEnd🧵 2023. 5. 15. 21:08

👀Today... 시작하기전에 웃고 싶어서 웃긴짤 찾다가 가져왔는데 아진짜 카페에서 소리내서 웃었다ㅋㅋㅋ 취향저격 개그 ☕오늘의 TIL(Today I Learn) JVM JVM은 자바 프로그램을 실행시키는 도구이다. .java 코드를 컴파일 하여 .class 바이트 코드로 만들면 이코드가 JVM환경에서 실행된다. JVM은 JRE(Java Runtime Environment)에 포함되어있다. 즉, 자바로 작성한 소스코드를 해석하여 실행하는 별도의 프로그램이다. 자바는 "운영체제로 부터 독립적"이라고 말하는데 이것이 JVM을 통해 구현되는것이다. 하나의 바이트코드로 모든 플랫폼에서 동작이 가능해진다. 즉, 위 그림에서 볼수있듯이 자바는 플랫폼에는 종속적이지 않지만, JVM은 플랫폼에 종속적이다. 리눅스의 J..

TIL - JAVA Object to JSON
BackEnd🧵 2023. 5. 14. 15:04

😊review Jackson Java Object를 Json으로 변환(직렬화,serializing) 하거나, JSon을 Java Object로 변환(역직렬화, deserializing)하는데 사용할수있는 Java 라이브러리. Jackson과 함께 GSon이라는 라이브러리또한 많이쓰이고 이외에도 엄청많다..! [jackson github] [Gson github] JSon (JavaScript Object Notation) name - value 형태의 경량데이터 교환형식이다. 기존에 사용되던 XML보다 인간이 읽고쓰기에 용이한 형태로 작성된다. //JSon 형식 { "name": "duckgeun", "age": 29, "address": { "street": "exmaple", "city": "kore..

article thumbnail
TIL - 스레드(Thread)
BackEnd🧵 2023. 5. 12. 14:55

👀Today... 프로세스와 스레드가 같은 뜻이라고 생각해왔었는데 이번에 찾아보면서 둘의 차이점에 대해서 알게되었다. 자바의 개념을 공부하는 과정이여서 자세하게 다루지는 못하지만 시간이 될때 한번더 자세하게 공부해봐야겠다. ☕오늘의 TIL(Today I Learn) 스레드란? 프로세스 : 실행중인 애플리케이션 (데이터 + 컴퓨터자원 + 스레드) 스레드 : 코드의 실행 흐름 일반적으로 한프로그램은 하나의 스레드를 가지고 있지만, 둘 이상의 스레드를 동시에 실행하는 것도 가능하다. 이런 방식을 멀티 스레드라고 한다. 멀티프로세스는 각 프로세스가 독립적으로 실행되며 각각 별개의 메모리를 차지하지만, 멀티스레드는 프로세스 내의 메모리를 공유해서 사용한다. 단 멀티스레드는 어떤것이 먼저 실행될지 순서를 알수가 없..

article thumbnail
TIL - 파일 입/출력
BackEnd🧵 2023. 5. 10. 19:17

👀Today... ☕오늘의 TIL(Today I Learn) 입출력 스트림 자바에서는 입출력을 다루기 위해 InputStream , OutputStream을 제공한다. 스트림은 단방향으로만 데이터를 전송할수있기 때문에 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요하다. 이러한 Input / Output Stream은 추상클래스이고 추상 메서드를 오버라이딩하여 파일, 네트워크, 메모리, 오디오, 프로세스 등 다양한 역할을 수행할수있다. 밑에서 설명하고자 하는 파일입출력 스트림도 여기에 속한다. 자바에서 기본적으로 제공하는 I/O기능은 java.io패키지에서 제공된다. Input은 말그대로 외부에서 데이터를 읽는 역할을 수행하고, Output은 외부로부터 데이터를 출력하는 역할을 수행한다. 바..

article thumbnail
TIL - 재귀 연습문제(1~ 12번)
BackEnd🧵 2023. 5. 10. 18:09

😊review 3번 System.arraycopy() / Arrays.copyOf() https://velog.io/@kai6666/Java-System.arraycopy-%EC%99%80Arrays.copyOf%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EB%B0%B0%EC%97%B4-%EB%B3%B5%EC%82%AC 12번 배열의 입력받아 순서가 뒤집힌 배열을 리턴... 😎Error logs error: method arraycopy in class System cannot be applied to given types; System.arraycopy() 사용중에 인수를 누락해서 나온 에러였다. 넣어주니 정상적으로 동작!

profile on loading

Loading...