전체 글

전체 글

    # 211118 TIL ([Ruby, slim] Model 파일 구조 파악하기)

    장기현장실습 PLSnote 이슈 #2644 그룹에 탈퇴신청을 하고 일정기간이 지나면 탈퇴가 되는 기능 이슈 진행중 모델 구조 파악과 관련한 정리 보통 상단에는 스키마로 사용될 단어?속성?들을 작성해둔다. 이 때, 앞에 사용하는 예약어 같은게 있는데 각각 어떤 의미를 가지고 있는지 살펴보자. attr_accessor 자동으로 해당 변수의 접근자와 설정자를 생성해준다. 접근자와 설정자는 getter, setter 느낌이고, 하나만 생성하고 싶을 때는 attr_accessor 대신 attr_reader, attr_writer를 사용하면 된다. has_one_attached 추가된 파일 업로드를 간단히 실행해주는 기능을 사용할 수 있다. 컬럼을 따로 추가할 필요 없이 모델에 has_one_attached를 추가..

    [인프런] 프론트엔드 개발환경의 이해와 실습 (웹팩 - 최적화)

    최적화가 필요한 상황과 웹팩에서 최적화를 적용하는 방법에 대해 알아보자. 최적화 코드가 많아지면 웹팩으로 번들링한 결과물의 크기도 커진다. 메가바이트(MB) 단위로 커질 수 있는데, 이는 브라우저 성능에 영향을 줄 수 있다. 파일을 다운로드하기까지 시간이 오래 걸리기 때문이다. 번들링한 결과물을 어떻게 최적화할지 살펴보자. production 모드 가장 기본적인 방법은 웹팩에 내장되어 있는 최적화 방법 중, mode 값을 설정하는 것이다. development는 디버깅 편의를 위해 아래의 플러그인을 사용한다. NamedChunksPlugin NamedModulesPlugin 추가로 DefinePlugin을 사용한다면 process.env.NODE_ENV 값이 development로 설정되어 애플리케이션에..

    [인프런] 프론트엔드 개발환경의 이해와 실습 (웹팩 - 핫 로딩)

    핫 로딩이 무엇인지 알아보고, 웹팩에서 직접 적용해보자. 핫 로딩 핫 모듈 리플레이스먼트 웹팩 개발서버의 한 기능으로, 코드 변경 사항이 있을 때 전체 화면을 갱신하지 않고 변경된 모듈의 화면만 갱신해준다. SPA(Single Page Application)은 브라우저에서 데이터를 담고 있기 때문에 리프레시 하면 모든 데이터가 초기화 된다. 내가 수정한 부분과 무관한 곳도 초기화되어 불편할 경우가 생긴다. 따라서 해당 기능을 사용하면 이러한 불편함도 줄이고, 개발 속도를 빠르게 할 수 있다. devServer.hot 속성을 켜서 핫 로딩을 설정해보자. webpack.config.js module.exports = { devServer = { hot: true } } 이렇게 설정해주면 웹팩 서버의 HMR ..

    # 211117 TIL ([Ruby, slim] job 생성하기, 컨트롤러에 액션 정의하기)

    장기현장실습 PLSnote 이슈 #2644 그룹에 탈퇴신청을 하고 일정기간이 지나면 탈퇴가 되는 기능 이슈 진행중 UI 추가 사용자 기준: 탈퇴신청 UI 추가 (group_apply.html.slim) 현재는 어떤 기준 없이 버튼이 나타나지만 추후 해당 그룹을 30일 동안 사용하지 않은 경우에 탈퇴하기 버튼이 나오도록 수정할 예정 .col-auto .btn.btn-outline-danger i.fa.fa-minus-circle ' #{t('.withdrawal')} 그룹관리자 기준: 장기미사용 UI 추가 / 탈퇴신청일 UI 추가 (_user.html.slim) 장기 미사용 태그는 그룹에 30일 이상 접근하지 않은 사용자에게만 나타나도록 수정할 예정이고, 탈퇴신청일 태그 또한 탈퇴 신청을 한 사용자만 나타..

    # 211116 TIL ([Ruby, slim] if/else 사용하기, 코드 중복 줄이기)

    장기현장실습 PLSnote 이슈 #2876 OKR맵에서 수정해야하는 글자 이슈 코드리뷰 후 수정 기존에 작성한 _team_plans.html.slim 파일의 if/else 문은 코드 중복이 있고, 이를 더 간단하게 하기 위해 조건문 부분을 plans_helper.rb 파일에 따로 선언함 루비에서는 if/else 문을 사용하고 나서도 end를 붙여줘야 에러가 나지 않음 def sort_by_type type = if @map.is_selected_navigation_category_a_project_related?(current_user) @map.okr_map? ? 'objective' : 'project' else 'team' end "plans.index.sort_by_#{type}_name" end..

    # 211115 TIL ([Ruby, slim] 사용자 선택에 따른 text 변경하기)

    장기현장실습 PLSnote 이슈 DO에서 이슈(에러) 확인 후, 깃랩 이슈 등록 + 엑셀 파일에 정리 #2875 플랜의 노트를 다읽음처리하면, 개별 플랜의 노트만 읽음처리되어야 합니다. #2876 OKR맵에서 수정해야하는 글자 #2876 OKR맵에서 수정해야하는 글자 이슈 (완료) 프로젝트별 Key Results(P) -> Objective별 Key Results(P)로 수정 (ko.yml, en.yml 에서의 team_key_results.by_projects) 메뉴바의 Objective -> OBJECTIVE로 수정 (ko.yml, en.yml 에서의 team_objective_uppercased_en) OBJECTIVE별로 보기에서 정렬 옵션 중 프로젝트 이름 순으로 보기 -> Objective 이..