전체 글 36

[230421] 변수 바인딩 event 주의, 컴포넌트 구분, routerLink

오늘 할 일 : 버그 픽스 끝내기, 다른 페이지 수정 완료하기 버그 픽스는 끝냈고, 그룹 부분 수정 중복되는 코드가 많은데, 하나로 묶거나 추상화 하기에도 애매한 것 같다, 일단 Service에서 관리할 로직과 데이터, 그리고 컴포넌트에서 직접 관리할 로직과 데이터를 잘 생각해서 구분한 뒤에 중복되거나 재사용이 가능한 부분을 정리해서 따로 빼서 만들어야 할 것 같다. 지금은 그걸 정리 안한 채로 섞어서 사용해서 많이 헷갈리게 된 것 같다. search 나 sorting 은 서비스로 따로 빼기 데이터 다루는 부분도 한번 정리하기 굳이 양방향 바인딩이 아니어도 되는, 단방향이어도 되거나 바인딩이 필요 없는 변수에 바인딩을 주면, 쓸데없는 이벤트 훅이 돌 수도 있으므로 주의해야 함! ngOnChages() 이..

개발/TIL 2023.04.21

[230420] 데이터 추상화, Angular 라이프사이클

중복된 코드가 너무 많다. 예쁘게 함수로 만들고 중복 없이 사용하고 싶은데, 아직 코드가 너무 중구난방이라 어렵다. 오늘 목표: 다른 페이지 다 정리해서 PR 올리기, 서비스 상속 알아보기 서비스 부분 강의 다시 들어야겠다. 아니면 다른 방법 있는지 좀 더 알아봐야겠다. 기능 제대로 확인 안하고 머지해버렸다! 이게 말이 되냐고,,, 정신차리자 추상화된 데이터모델 T에 무조건 test라는 속성은 있었으면 좋겠다면? export interface Selected { selected: boolean } export interface T extends Selected { // ***** 요소 추가 } 근데 T가 정해지지 않은 추상화인데,,, 저러면 그냥 인터페이스를 만드는거 아닌가? 다시 찾아봐야겠다. ngDo..

개발/TIL 2023.04.20

[230418] Service 상속, 추상화

Service 파일을 만들어서 구현했는데, 같은 동작을 하는 파일들이 많아져서 중복되는 코드가 많아졌다. 불-편 해서 챗GPT에게 물어보니 service도 클래스를 추상화해서 그 추상 클래스를 상속받아 구현할 수 있다고 한다. 내가 원하는 기능이 가능할지는 모르겠지만, 그게 된다면 좋은 방법인 것 같다. contents -a -b -c -d 각 a, b, c, d가 비슷한 service(정렬, 검색, 페이지네이션 등)를 가지고 있으니까, ContentsService를 만들어서 상속을 시켜주면 되지 않을까 싶다. 그치만 의문점: search를 각각 자식클래스에서 구현해야 한다. 그러면,,, search 기능만 컴포넌트로 뺄 수가 있나? 헤더 컴포넌트를 따로 뺐다가 결국 합쳤는데, 그 부분이 구현이 되는지 ..

카테고리 없음 2023.04.18

[230417] Angular Service, Component

컴포넌트별로 나누어서 개발하여 재사용에 용이하게 함 MVC(Model-View-Controller)모델 ng generate component test ng g c test ng g c test --skip-test // spec.ts 없이 생성 ng g c test/sub-test // test 폴더 아래에 생성 test.component.ts test.component.scss test.component.html test.component.spec.ts // 테스트용 파일이라 사용하지 않음. 네 개의 파일이 생성됨. 기본적으로 …/src/app/ 아래에 폴더 생성 후 생성된다. app-root import { Component } from '@angular/core'; @Component({ sele..

개발/TIL 2023.04.18

[프로그래머스] 전화번호 목록(C++)

[Level2, 해시] 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습..

개발/알고리즘 2023.03.28

[Git] git reset vs revert

reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다. revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다. reset git reset --hard (돌아갈 커밋 해시) 돌아갈 커밋 해시 위치로 돌아간 후, 그 커밋 이후의 내용과 커밋들은 전부 삭제한다. 커밋 해시는 `git log` 를 통해 확인 가능 hard : 해당 커밋 이후의 내용과 커밋들을 모두 삭제하고, 변경사항도 모두 삭제. mixed: 해당 커밋 이후의 커밋은 삭제하고, 변경된 내용은 staging 해놓음. soft: 해당 커밋 이후의 커밋은 삭제하고, 변경된 내용은 working directory에 남아있음. 🚨reset 으로 날아간 파일 살리기 git reflog reflog 는 프로젝트가 위치한 커밋이 바뀔 ..

개발 2023.03.28

[프로그래머스] K번째수 (Javascript)

[Level1, 정렬] 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상..

개발/알고리즘 2023.01.31

2022년 회고록

2022년을 마무리 하면서 써야했던 회고록이지만, 여러가지 사정과 게으름으로 1월이 지나서야 회고록을 쓰게 되었다. 그냥 바로 계획만 세워볼까 싶기도 했는데, 그래도 회고를 쓰고 정리를 해야 새로운 계획도 세울 수 있을 것 같다. 먼저, 22년 연초에 세웠던 계획들이다. 복학하기✅ 먼저, 복학 해서 3학년까지 어찌 저찌 잘 끝났다. 학점도 4점대까지는 아니지만 아주 낮지는 않게 유지했고... 사실 42 과제와 병행하며 학교 생활에 아주 충실했다고 보기는 힘들지만, 그래도 학교에서 프로젝트도 한 개 하고 학기를 무사히 잘 마친 것에 만족한다. 42서울 이너서클 돌파하기✅ 42 이너서클은 끝냈다! 원래의 목표는 여름방학이 끝나기 전에 끝내는 것이었지만, 결국 2학기가 시작하고 나서 마지막 과제를 시작해 12..

[DB]MariaDB 설치

MariaDB 설치 오류가 계속 나서 mysql uninstall, mariadb uninstall, 관련 파일 삭제 등 여러가지 해보고 다시 깔아도 같은 (여러가지...) 오류가 발생했다. 그러다가 mysql과 mariadb 모두 삭제하고 mysql --verbose --help | grep my.cnf 명령어로 my.cnf 관련 파일까지 모두 삭제한 후, mariadb를 다시 설치했더니 해결됐다. sudo mariadb-secure-installation mariadb 의 비밀번호도 설정해준다. mariadb -uroot -p 이제 다음 명령어로 mariadb에 접근할 수 있다. 참고 링크 https://velog.io/@dayebyday/MariaDB-Mac-MariaDB-%EC%84%A4%EC%B..

개발/프로젝트 2022.09.30

[Docker] 도커와 가상머신(VM)

Docker 도커는 리눅스의 응용프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈소스 프로젝트이다. (위키) 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템도구, 시스템라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행중인 환경에 관계 없이 언제나 동일하게 실행될것을 보증한다. (도커 웹페이지 인용) 한 소프트웨어를 만들었을 때, 각 서버나 컴퓨터마다 환경이 다르다면 소프트웨어가 제대로 동작하지 않을 수 있다. 따라서 OS위에 컨테이너를 만들고, 그 안에서 소프트웨어 동작 환경을 설정해준다면 그 컨테이너를 이용하여 어떤 환경에서든 소프트웨어가 동작할 수 있게 만들어준다...

개발/Docker 2022.06.23