일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 현장실습 IT
- 값 객체
- 프로그래머스
- DNS동작원리
- Spring
- 인턴
- OpenAI
- REST
- Java
- NAVER D2
- Executors
- 현장실습
- 잘하고싶다..
- 위키 탭
- 숭실대
- 개발자 디자인
- 위키 꾸미기
- 자바
- nurigo
- 사이드 프로젝트
- aws ec2
- 셀레니움
- 스터디 관리
- 스프링 회원가입 인증
- 스프링
- ssh
- excalidraw
- 스트림
- 문자 인증
- 정렬 기준
- Today
- Total
목록분류 전체보기 (62)
뭐요

로그 관리 도구 부재의 문제점 좋지못한 가독성 에러 디버깅 등 로그를 확인할 필요성이 생긴다면 직접 터미널을 통해 ssh 접속해서 서버에 접근했습니다. 터미널에서 로그를 확인하다 보니 무수히 쌓여있는 로그를 읽을 때 분간이 가지 않아서 읽기가 힘듭니다. 클라이언트와 API 연동의 어려움 서버에서 개발한 API를 연동하기 위해 클라이언트가 API를 테스트 하면서 문제가 발생할 수 있습니다. 때때로 (물론 우리 소프티어 부트캠프 AOS, FE 님들은 잘해주시지만 ^,^) 다음과 같이 말하곤 합니다. “이거 안되는데요?” 그러면 API를 호출했을 때 어떤 parameter를 넣었는지, 로그를 확인하기 위해 언제 호출했는지 등 반문 해야합니다. 심지어 로그만 확인한다면 원인을 쉽게 알 수 있는 경우도 빈번히 있..
Value Object도메인에서 한 개, 또는 그 이상의 속성들을 묶어서 특정 값을 나타내는 객체도메인 객체의 부분집합기본 키로 식별값을 갖는 Entity와 구분해서 사용 왜 구분하는가?Entity에서 충분히 원시(primitive) 타입만 가지고 속성을 만들 수 있다.하지만 원시타입을 갖는 속성은 그 자체만으로 제약사항을 추가할 수 없고, 비슷한 속성끼리 묶을 수 없기 때문에 지나치게 속성을 많이 갖을 수 있다.가령 User 객체에 나이를 나타내는 age라는 속성이 있다고 해보자.간단하게 private int age; 라고 표현할 수 있지만 int는 음수도 포함할 수 있는데 실제 나이는 음수 값을 갖지 못한다. 이러한 경우 제약사항을 추가해서 실제 나이가 갖는 특징을 VO로 만들어 제약사항을 추가할 수..
대학교를 다니면서 가장 빠르게 지나간 7학기였다. 3월 처음 입사할 당시에는 약간의 긴장과 빨리 업무에 적응하고 싶어서 열심히 하다 보니 빨리 갔고, 중간엔 지속적으로 서버 장애가 나서 대응하느라 정신없이 지나갔고, 마지막엔 회사 사람들과 지낸 정 때문인지 출근하는 게 재밌어서 금방 지나갔다. 결론부터 말하자면 나쁘지 않았다. 신입으로서 개발하기에 좋은 환경은 아니었지만, 그 나름대로 장점이 있었다. 자유로운 분위기에서 스스로 결정권을 갖고 그 결정에 책임을 져야하니 신뢰있는 근거를 찾는 방법을 배웠다. 그리고 또 작은 스타트업은 어떤 분위기에서 어떤 방식으로 일하는지 알게 되었다. 퇴사를 한지 약 한달만에 작성하는 후기인데, 퇴사를 한 직후에 바로 소프티어 부트캠프를 하느라 또다시 바쁘고 정신없었다. ..
0. “미리보는 완성 화면”다음과 같이 Github 위키 탭을 꾸며보겠습니다. 1. “Add a custom sidebar”우측 하단에 Add a custom sidebar를 클릭합니다.해당 버튼이 보이지 않는 경우위키에 페이지가 한 개라도 존재하지 않으면 아래 사진과 같은 페이지가 뜹니다. 아무 페이지나 하나 만들어주세요~ 2. “html 코드 작성”제목은 수정하지 말고 _Sidebar 를 유지해주세요. 태그 안에는 New page를 통해 새롭게 생성한 위키 페이지의 주소를 넣어주세요.아래 코드를 copy and paste 해주세요 🦷 Test1 🦗 테스트1 🍺 테스트2 🪖 테스트3 🐜 테스트4 🌚 테스트5 🌊 테스트6 🤡 Test2 🤖 토글~ 토글 tmp 3. “wiki 탭 변경사항 확인” 4. “N..

Concurrency API Summary기존에 병렬 처리를 하기 위해서는 Thread 클래스 혹은 Runnable 인터페이스를 직접 사용해야 했습니다. 하지만 자바 5부터 새롭게 추가된 Concurrency API를 통해 기존의 한계점을 극복합니다.작업을 실행하기 위해 Executor 인터페이스를 제공합니다.쓰레드 풀, 큐 등 다양한 Executor 구현체를 제공합니다. 예시로 설명하는 기존 방식의 한계점 (Thread, Runnable)웹 서버는 여러 사용자의 요청을 동시에 처리해야 하므로 다음과 같은 형태의 코드를 지닐 것입니다.try (ServerSocket listenSocket = new ServerSocket(port)) { Socket connection; while ((connection..
isEmpty()문자열의 길이가 0이면 true isBlank()문자열의 길이가 0이거나 공백으로만 이루어져있으면 true String 객체가 null 값인 상태에서 위 메소드 호출 시 NPE 발생
정적 팩토리 메소드 (static factory method)란?정적 팩토리 메소드를 사용하면 객체를 생성하기 위해 직접 new 키워드를 사용하여 생성자를 호출하지 않습니다.기존의 public 생성자는 접근 지정자를 private으로 바꾸어 외부에 감추고, static method를 사용해서 간접적으로 생성자를 호출해 객체를 생성하는 것이 정적 팩토리 메소드 입니다. 아래 코드는 Boolean class에서 사용한 정적 팩토리 메소드 입니다.public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } 왜 사용할까?‘이펙티브 자바’에서 가장 첫 번째 챕터는 다음과 같다.생성자 대신 정적 팩토리 메서드를 고려하라 1...

Stream실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름자바에서는 파일, 시스템 입출력을 직접 다루지 않고 스트림이라는 흐름을 통해 다룹니다. 따라서 프로그램과 외부 시스템 사이의 중간 매개자라고 할 수 있습니다.한 방향으로만 통신이 가능합니다. 따라서 입력 스트림과 출력 스트림으로 나눌 수 있습니다.java.io 패키지에서 입력 스트림과 출력 스트림 클래스를 별도로 제공합니다. 출처 : https://hudi.blog/java-inputstream-outputstream/ 자바의 Streamjava.io 패키지에서 다양한 출력 스트림을 제공합니다.크게 바이트 단위의 입출력 스트림과 문자 단위의 입출력 스트림으로 나눌 수 있습니다. 바이트 단위문자, 그림, 영상 등 다양한 형태의 데이터를 주고 받..
What is the ‘Stream’ ?‘데이터의 흐름’ 으로 해석할 수 있는 스트림(Stream)은 자바 8에서 추가 되었습니다.일반적으로 배열과 컬렉션은 for 혹은 foreach를 통해 요소를 하나씩 꺼내는데, 스트림을 활용하며 보다 간결하게 코드를 작성할 수 있게 되었습니다. 이후에 알아보겠지만 간결한 코드 작성 외에도 병렬 처리가 가능합니다. Stream Class특징1. 원본의 데이터 변경 X기존에 컬렉션을 정렬하는 방식과 Stream을 이용하여 정렬하는 방식입니다. 전자의 경우는 원본 데이터 자체가 바뀌지만 후자는 그렇지 않습니다.// 기존의 방식 List list = Arrays.asList(4, 6, 2, 3); Collections.sort(list); System.out.println..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 first-tryexpression 순회해당 char가 operator면 좌우에 있는 operand를 while문 사용해서 가져오기이 때 operand 가져와서 계산해주고 다시 값을 삽입해주는 코드가 너무 복잡했음expression 자체에서 String의 idx로 접근하면 다음이 너무 복잡함양 옆 oeprand 가져오는 기능 구현계산 후 해당 자리수에 insert 한 뒤 바뀐 expression.length()만큼 고려해서 i를 뺴주어야 함 second-tryList 만들어서 operand와 operator 분리하는 게 구현하기 더 쉽다고 판단import java.util.*; class S..