본문 바로가기

전체 글158

Intellij - Essential Context actions - [option + enter] 인텔리제이에서 수정해야할 것으로 추측되는 부분에서 [option+enter]를 입력하면 몇 가지 수정 사항을 제안해준다. Search for actions - [cmd + shift + a] 어떤 액션(기능)을 찾고 싶을 때 Search for actions를 이용하면 간단하게 찾을 수 있다. Search Everywhere - [shift * 2] 액션을 포함한 모든 범위에서 검색을 할 때는 Search Everywhere를 사용하면 된다. Find only classes or search only in specific directories - [cmd + o] 클래스를 찾을 때는 이 기능을 사용하면 된다. 오른쪽 위에서 클래스를 찾을 범위.. 2022. 3. 10.
유용글 저장 컴공 취준생에게 유용한 링크들 정리 https://velog.io/@woo0_hooo/%EC%BB%B4%EA%B3%B5-%EC%B7%A8%EC%A4%80%EC%83%9D%EC%97%90%EA%B2%8C-%EC%9C%A0%EC%9A%A9%ED%95%9C-%EB%A7%81%ED%81%AC%EB%93%A4-%EC%A0%95%EB%A6%AC 컴공 취준생에게 유용한 링크들 정리 컴퓨터공학과 (예비)취준생들에게 도움이 될 것 같은 유용한 링크들을 모아봤어욤. sw 개발자 취업&이직 정보공유방의 공지와 구글링하면서 스타해놨던 저장소들입니다! velog.io 일급 컬렉션 https://jojoldu.tistory.com/412 일급 컬렉션 (First Class Collection)의 소개와 써야할 이유 최근 클린코드.. 2022. 3. 7.
Git - 스테이징 되돌리기 git을 사용할때 add를 사용해서 스테이징한 파일을 취소(언스테이징)하고 싶을 때가 있다. 그럴 때는 reset 명령을 사용하면 파일을 언스테이징할 수 있다. git add index.html git reset index.html 2022. 3. 4.
Java - 스트림으로 데이터 수집 1. 컬렉터란 무엇인가? 1.1 고급 리듀싱 기능을 수행하는 컬렉터 훌륭하게 설계된 함수형 API의 또 다른 장점으로 높은 수준의 조합성과 재사용성을 꼽을 수 있다. collect로 결과를 수집하는 과정을 간단하면서도 유연한 방식으로 정의할 수 있다는 점이 컬렉터의 최대 장점이다. 스트림에 collect를 호출하면 스트림의 요소에 리듀싱 연산이 수행된다. collect에서는 리듀싱 연산을 이용해서 스트림의 각 요소를 방문하면서 컬렉터가 작업을 처리한다. 보통 함수를 요소로 변환할 때는 컬렉터를 적용하며 최종 결과를 저장하는 자료구조에 값을 누적한다. 1.2 미리 정의된 컬렉터 Collectors에서 제공하는 메서드의 기능은 크게 세 가지로 구분할 수 있다. 스트림 요소를 하나의 값으로 리듀스하고 요약 요.. 2022. 3. 3.
Java - 스트림 활용 데이터를 어떻게 처리할지는 스트림 API가 관리하므로 편리하게 데이터 관련 작업을 할 수 있다. 따라서 스트림 API 내부적으로 다양한 최적화가 이루어질 수 있다. 스트림 API는 내부 반복 뿐 아니라 코드를 병렬로 실행할지 여부도 결정할 수 있다. 1. 필터링 1.1 프레디케이트로 필터링 스트림 인터페이스는 filter 메서드를 지원한다. filter 메서드는 프레디케이트를 인수로 받아서 프레디케이트와 일치하는 모든 요소를 포함하는 스트림을 반환한다. List vegetarianMenu = menu.stram() .filter(Dish::isVegetarian) .collect(toList()); 1.2 고유 요소 필터링 스트림은 고유 요소로 이루어진 스트림을 반환하는 distinct 메서드도 지원한다.. 2022. 3. 3.
Java - 스트림(stream) 스트림은 자바 8 API에 새로 추가된 기능이다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있다. 정확히는 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소라고 설명할 수 있다. 간단히는 스트림이 데이터 컬렉션 반복을 멋지게 처리하는 기능이라고 생각하자. 칼로리가 400이 안되는 음식들을 정렬하고 음식들의 이름만 가지는 리스트를 구하는 방법을 생각해보자. 스트림을 사용하기 전에는 for문을 돌면서 필터링한 리스트를 구한 뒤, 정렬을 하고, for문을 돌면서 새로운 리스트에 이름만 넣어주는 식으로 코드를 작성해야 한다. void filterAndSort(){ List lowCaloricDishes = new ArrayList(); for(Dish dish: menu) { if(dis.. 2022. 3. 3.
21/2/18 Facts(사실) 다훈님과 블랙잭 미션을 진행했고, 해커톤을 대비해서 프로젝트 준비를 시작했다. 아직 자동차 경주와 로또의 코드 리뷰가 현재 진행형이다. 팀 설명회를 들었다. Feelings(느낀 점) 코드 리뷰를 하면서 처음에 깔끔하게 짜지 못한 코드들에 대한 부담을 점점 느끼고 있다. 해커톤 준비를 하면서 느낀건데 내가 팀에 가서 잘 할 수 있을지에 대한 고민이 드는 것 같다. 다훈님이랑 페어 프로그래밍을 하면서 많이 배운 것 같고, 나도 더 잘하고 싶다는 생각이 들었다. 동시에 얼빵한 애가 팀으로 들어와서 속상해 하면 어쩌지 하는 생각이 들기도 하고, 어느 팀에 가야할지 고민이 된다. Findings(배운 점) 예외 처리에 대해 조금은 더 알게 된 것 같고, 메소드를 잘게 분리하는 방법, 접근 제한.. 2022. 2. 18.
Spring Boot - 타임리프 스프링부트가 지원하는 서버 사이드 자바 템플릿 엔진 중 하나 강점: HTML5 웹 표준을 준수하는 템플릿 전체적인 무법이 마크업 표준을 최대한 해치지 않게끔 설계 Decoupled logic: 템플릿 문법을 아예 템플릿에서 분리 가능 템플릿 문법 종류 Variable Expression: ${...} Selection Variable Expressions: *{...} Message Expressions: #{...} Link URL Expressions: @{...} Fragment Expressions: ~{...} 2022. 2. 17.
21/2/11 Facts(사실) 조교님과 페어 프로그래밍했다. 새로운 팀원과 미션3를 시작했다. Feelings(느낀 점) 아직도 부족한게 많다고 생각했고, 처음에 코드를 짤 때 제대로 하지 않으면 리팩토링은 배로 힘들다는 것을 느꼈다. Findings(배운 점) 예외 처리에 대해 조금은 더 알게 된 것 같고, 메소드를 잘게 분리하는 방법, 접근 제한자를 사용하는 것, enum의 사용, stringBuilder의 사용, 향상된 for문 사용법 등에 배웠다. Affirmation(자기 선언) 다음 주에도 성장하겠다. 2022. 2. 11.
21/2/4 Facts(사실) 이번 주는 설연휴가 끼어있었는데, 일요일에도 수요일에도 만나서 과제를 진행했습니다. 그리고 전에 했던 자동차 경주를 완료하지 못해서 짬짬이 코드를 작성했습니다. 하지만 연휴가 껴있던만큼 체력 충전할 시간이 있어서 좋았습니다. Feelings(느낀 점) 휴일에 개발 한다는 것이 살짝 현타가 오기도 했지만 마냥 싫지만은 않은 것이 기분이 이상했습니다. 또한 코드를 짤수록 기분 탓일지도 모르겠지만 내가 성장하고 있다는 느낌이 들어 좋았습니다. Findings(배운 점) 페어 프로그래밍을 진행하면서 다른 사람의 코드를 보고 배울 점을 많이 느꼈습니다. 상수, 문자열 하나 하나를 매직 넘버를 사용해서 깔끔하게 만들 수 있다는 생각을 했고, 요구 사항에 맞게 짧은 코드를 짜기 위해 메소드나 클래스.. 2022. 2. 4.