전체 글92 수강신청 - 레거시 코드 리팩터링 회고 강사님이 가장 중요한 미션이라고 여긴 레거시 코드 리팩터링 미션이다. 앞의 미션들은 이 미션을 위한 연습이라고 해도 과언이 아닐 정도라고 하셨다. 앞의 미션들은 하지 않아도 레거시 코드 리팩터링 미션은 무조껀 해야 비싼 강의에서 얻어갈 수 있는 것이 있다고 말씀하셨다. 이전 콘솔 기반 미션과는 많이 다르고 Base 코드도 있다보니 코드를 어디까지 수정해도 되는지 감이 잘 잡히지 않았다. 예를 들어 Answer과 Question 객체에서 양방향 관계로 되어 있는걸 해제해도 되는지 등이다. Step1 1단계 레거시 코드 리팩터링 Step1 1단계 레거시 코드 리팩터링 Step1 미션은 Service Layer에 집중되어 있는 로직을 도메인 모델로 옮기는 미션이였다. 객체지향 적으로 코드를 작성하지 않으면 S.. 외부활동/TDD, 클린 코드 with Java 17기 2023. 11. 25. 사다리타기 - FP, OOP 회고 Step1 스트림, 람다, Optional Step1 스트림, 람다, Optional PR 평소에 자바8 문법을 사용하고 있어서 이번 Step은 별다른 어려움이 없었다. .filter(age -> age >= 30 && age age >= 30 && age 10자로 변경 되면"참여자의 이름은 5자 이하로 입력하세요." -> "참여자의 이름은 10자 이하로 입력하세요."출력할 메시지를 변경하지 않으면 불일치가 발생한다. 따라서 요구사항에 변경에 대비하여 출력할 메시지를"참여자의 이름 길이가 초과되었습니다"이런식으로 변경하는게 좋다 라는 말씀이실까요? 💡 맞아요😀 저는 그러한 작업을 일반화하여 표기하기라고 해요. 아니면 커스텀 예외의 장점을 살려 파라미터를 전달할수도있겠죠 ㅎ 리뷰어님의 입장과는 다른 생각을.. 외부활동/TDD, 클린 코드 with Java 17기 2023. 11. 25. 로또 - TDD 회고 Step1 문자열 계산기 Step1 문자열 계산기 PR 미션1의 계산기와 비슷한 요구사항이여서 쉽게 진행했다. import java.util.regex.Pattern; import java.util.stream.Collectors; public class Input { Input은 validation과 parsing을 수행하고 있는 객체다. 아래와 같은 피드백을 받았다. 💡 validation과 parsing을 수행하고 있습니다. Input 보다는 더 잘 표현할만한 명칭은 없을까요? 입력 값 검증만 했다면 -Validator 등을 붙혔겠지만 parsing 역할도 있어서 범용적인 클래스명을 붙히는게 좋다는 생각이 들었다. 그래서 클래스명을 CalculatorInputProcessor 로 수정하였다. pub.. 외부활동/TDD, 클린 코드 with Java 17기 2023. 11. 11. 자동차 경주 - 단위 테스트 회고 Step1 학습 테스트 실습 Step1 학습 테스트 PR @Test @DisplayName("성공 - 중복이 제거된 Set 크기를 확인할 수 있다.") void success_set_size_test() { //when int size = numbers.size(); int expected = 3; //then assertThat(size).isEqualTo(expected); 처음 짠 로직은 Set size를 체크시 size() 메소드를 사용해서 추출한 후에 비교 하고 있다. 아래와 같은 피드백을 받았다. 💡 size를 굳이 추출하지 않고, hasSize 로 확인하실 수 있을 것 같아요 ~ 그래서 아래와 같이 수정하였다. assertThat(numbers).hasSize(3); Step2 문자열 덧셈 .. 외부활동/TDD, 클린 코드 with Java 17기 2023. 10. 30. TDD, 클린 코드 with Java 17기 시작 드디어 Nextstep 강의 시작!! 교육 기간은 2023년 10월 30일(월) ~ 12월 14일(목) 총 6.5주간 진행된다. 현재 3년차 개발자지만 성장했다는 느낌을 받은적이 거의 없었다. 단지 CRUD 공장장이 된 기분이랄까... 주니어 개발자란 타이틀을 가지고 있을때 폭풍적으로 성장해서 원하는 목표를 이루고 싶다. 포기하지말고 기간내에 수료할 수 있게 화이팅 하잣!! 외부활동/TDD, 클린 코드 with Java 17기 2023. 10. 30. 컴퓨터 네트워크 5주차 스터디 정리 쿠키와 세션의 차이 정보 유지가 필요한 상황에서 HTTP 특징인 Stateless한 방식을 대처하기 위해 쿠키와 세션을 사용한다. 큰 차이점은 상태정보의 저장 위치이다. 쿠키와 세션 모두 클라이언트가 가지고 있지만 세션은 서버'도' 저장한다 쿠키 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용 가능하다. 특징 - Key-Value 쌍의 작은 데이터 파일 - 이름, 값, 만료일(저장 기간 설정), 경로 정보, HttpOnly 등로 구성되어 있다. - 클라이언트에 총 300개의 쿠키를 저장할 수 있다. - 하나의 도메인 당 20개의 쿠키를 가질 수 있다. - 하나의 쿠키는 4KB(=4096byte)까지 저장 가능하다. 동작방식 1. 클라이언트가 서버에 로그인 요청 2.. 외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기 2023. 8. 20. 데이터베이스 5주차 스터디 정리 DB 세션 세션이란 client가 SQL 서버에 연결된시점부터 나가는 시점까지의 시간을 말한다. ※ Connection은 물리적인 커뮤니케이션 채널 show full processlists; show processlist; 현재 실행 중인 process list 확인 -- base query select * from information_schema_processlist limit 10; -- not start with 192 select * from information_schema_processlist where host not like '192%' limi 10; -- session time above 100 seconds select * from information_schema.processli.. 외부활동/CS 면접 끝장내기 - 데이터베이스 1기 2023. 8. 19. 데이터베이스 4주차 스터디 정리 이상현상 이상현상이란 테이블내의 데이터 중복성에 의해서 발생되는 데이터 불일치 현상이다. 삽입 이상(Insertion Anomaly) 특정 데이터가 존재하지 않아 중요한 데이터를 DB에 삽입할 수 없을때 발생 학생이 없어 기본키가 없으므로 삽입 불가 갱신 이상(Update Anomaly) 특정 데이터를 업데이트 했는데, 일부 튜플만 갱신되어 모순 발생 경영학과의 학과장 이름을 변경시 경영학과 학생의 모든 튜플을 수정하지 않으면 데이터 모순 발생 삭제 이상(Deletion Anomaly) 특정 정보를 삭제하면, 원치 않는 정보도 삭제되는 현상 이 모든건 정규화를 통해 해결 가능 함수 종속성이란? 데이터베이스 릴레이션에서 두 개의 속성 집합 간 제약의 일종이다 어떤 릴레이션 R에서, X와 Y를 각각 R의 속.. 외부활동/CS 면접 끝장내기 - 데이터베이스 1기 2023. 8. 15. 컴퓨터 네트워크 4주차 스터디 정리 IP 프로토콜 IP 주소 IP는 네트워크 상에서 컴퓨터(노드)를 식별하기 위해 부여된 위치주소이다. 네트워크 주소는 공통적인 부분이고, 호스트 주소가 중복이 없고 유일한 식별자 역할을 한다. 예를 들면 OO 아파트 101동 101호라는 주소가 있으면 101동까지가 네트워크 주소고, 101호가 호스트 주소가 된다. ※ 네트워크 주소는 각 국가마다 부여한다. == 지역(043-256...) ※ 호스트 주소는 호스트들을 개별적으로 관리하기 위해 사용한다.(국가의 국민) 전화기(5551) IP 주소는 실제로 32자리의 2진수로 이루어져 있다. 192.168.0.103의 2진수 11000000.10101000.00000000.01100111 IP는각 자릿수를 옥텟이라 부르며 dot(.)으로 구분한다. 즉 IP는 .. 외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기 2023. 8. 13. 데이터베이스 3주차 스터디 정리 랜덤 I/O와 순차 I/O 랜덤 I/O는 논리적/물리적 순서를 따르지 않고 한 건의 데이터를 읽기 위해 한 블록씩 접근하는 방식이다. 순차 I/O는 논리적/물리적 순서를 따라 차례대로 데이터를 읽어 나가는 방식이다. - 5번만 순차 I/O고 나머지는 랜덤 I/O다. - 5번은 논리적/물리적으로 한 방향으로 연속하게 데이터를 읽어 들이지만, 나머지는 연속하지 않은 방향으로 한 블록씩 데이터를 읽는다. 순차 I/O는 3개의 페이지를 디스크에 기록하기 위해 한 번의 시스템 콜을 요청했다. 랜덤 I/O는 3개의 페이지를 디스크에 기록 하기 위해 세 번의 시스템 콜을 요청했다. 즉, 순차 I/O는 디스크의 헤드를 1번 움직였지만, 랜덤 I/O는 디스크의 헤드를 3번 움직이게 된다. 디스크에 데이터를 읽고 쓰는데 .. 외부활동/CS 면접 끝장내기 - 데이터베이스 1기 2023. 8. 10. 컴퓨터 네트워크 3주차 스터디 정리 신뢰적 데이터 전송의 원리 슬라이딩 윈도우란? 정지-대기 기법의 비효율성을 개선한 기법 수신 측에서 설정한 윈도우 크기만큼 송신 측에서 확인 응답(ACK)없이 전송할 수 있게 하여 흐름을 동적으로 조절하는 제어 알고리즘 이다. 오류 제어와 흐름 제어를 함께 지원한다. 최대 윈도우의 사이즈 만큼 전송할 수 있다. 기본 절차 1. 송신측은 프레임을 순서 번호에 따라 순차적으로 전송한다. 2. 수신측이 송신측에 전송하는 순서 번호는 정상적으로 수신한 번호가 아닌, 다음에 수신하기를 기대하는 번호이다. - ACK4: 4번을 받을 차례이다 라는 뜻 3. 송신측은 전송은 되었지만, ACK를 받지 못한 프레임들을 버퍼에 쌓아둠 4. 수신측은 프로토콜의 동작 방식에 따라 크기가 다름 - 선택적 재전송(Selective.. 외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 2기 2023. 8. 7. 데이터베이스 2주차 스터디 정리 SQL(Structured Query Language)은 관계형 DB에서 데이터를 정의, 조작, 제어하기 위한 표준 프로그래밍 언어이다. 영어가 주 언어인 사람에서 봤을때 간결하고 명시적인 특성 덕분에 이해와 접근에 쉬운 장점이 있다. C언어와의 차이점 1. 목적 SQL: DB와 상호작용 하기 위해 설계된 프로그래밍 언어 C언어: 범용 프로그래밍 언어로서, 다양한 종류의 SW를 개발하기 위한 도구(운영체제, 임베디드 시스템, 게임 등) 2. 선언적 vs 절차적 SQL: 선언적 언어로, 원하는 결과가 무엇인지 지정하고 컴퓨터가 필요한 단계를 파악한다. C언어: 절차적 언어로, 원하는 결과를 달성하기 위해 개발자가 수행해야 하는 단계가 존재 ❓ 선언적.. 절차적.. 내가 적긴 했지만 이해가 100% 되진 않.. 외부활동/CS 면접 끝장내기 - 데이터베이스 1기 2023. 8. 2. 이전 1 2 3 4 5 ··· 8 다음