본문 바로가기
반응형

DEV61

Iterator(반복자) 패턴 배열의 요소를 표시하려면 다음과 같이 for 문을 사용한다. for(int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } arr[i]에서 i에 주목해야 한다. 변수 i는 0으로 초기화되고 그 다음 1, 2, 3,...으로 증가하고, 그때마다 arr[i]의 값이 표시된다. 이렇게 i를 늘려 가다보면 배열 arr의 요소 전체를 처음부터 순서대로 검색하게 된다. 여기에서 사용되는 변수 i의 기능을 추상화하여 일반화한 것을 디자인 패턴에서 Iterator 패턴이라고 한다. Iterator 패턴은 무엇인가 많이 모여 있을 때 이를 순서대로 가리키며 전체를 검색하고 처리를 반복하는 것이다. 이름 설명 Iterable 집합체를 나타내는 인터페이스(java... 2024. 3. 6.
01. UML에 대해서(클래스/시퀀스 다이어그램) UML - UML은 Unified Modeling Language의 약자. - 시스템을 시각화하거나 시스템의 사양이나 설계를 문서화하기 위한 표현 방법 클래스 다이어그램 - UML의 클래스 다이어그램(Class Diagram)은 클래스나 인스턴스, 인터페이스 등의 정적인 관계를 표현 클래스의 계층 관계를 표현한 클래스 다이어그램 인터페이스와 구현 -추상 클래스와의 유사성을 강조하기 위해 인터페이스 이름에 이탤릭체를 사용하였지만, 사용하지 않는 경우도 많음. - 점선의 화살표는 인터페이스와 구현 클래스의 관계를 나타내고 있음. 화살표는 구현 클래스에서 인터페이스로 향하고 있음.(implements) - '갖고 있는' 관계를 집약(aggregation)이라고 함. 어떤 구현이라해도 인스턴스를 갖고 있으면 개.. 2024. 2. 27.
npm run serve permission 에러 1. vue create vue3-cli로 뷰 프로젝트를 생성했다. 2. 성공 후 나온 명령어를 입력하여 실행시키려는데, 계속 permission 에러가 떴다. 그래서 에러나는 폴더들를 생성하거나 권한을 주거나 했는데, 다른 폴더나 파일들 permission이 계속 떠서 이런 방법으로는 해결이 되지 않을 거 같았다. 그래서 혹시나 하는 마음에 실행을 sudo 권한으로 하니 잘 된다. 3. sudo npm run serve 를 입력하면 잘 실행되는 걸 볼 수 있다. (참고: 나는 package.json scripts에 serve를 s를 변경한 상태여서 sudo npm run s를 입력해줬다.) 2024. 2. 27.
zsh: command not found: vue vue create vue3-cli을 입력하니 아래와 같은 메세지가 계속 떴다.zsh: command not found: vue구글링도 해보고, chatGpt도 돌려서 환경변수 설정을 해봤지만 잘 안 됐는데 결국 해결! 아래와 같이 입력해주면 된다.vim ~/.zshrc1) 우선 ./zshrc 편집기를 연다.export PATH=$PATH:/Users/[사용자이름]/.npm-global/bin2) 위 내용을 입력한다. 사용자이름에는 맥북 사용자 이름을 입력하면 된다.source ~/.zshrc3) 새로고침 해준다. 그리고, vue --version을 확인해보면 잘 나오는 걸 확인할 수 있다. 2024. 2. 27.
[mac os] 맥에서 Port 8080 was already in use 처리하기 1. 터미널을 켠다. 2. 아래 명령어를 입력하고, 맥북 비밀번호를 입력하라고 나오면 입력해서 8080 포트를 종료하면 된다. lsof -i tcp:8080 sudo kill -9 47791 오늘은 뭐 먹지? - 메뉴 추천, 음식 메뉴 고르기 - Google Play 앱 메뉴 선택 장애가 있는 분들을 위한 메뉴 선택 앱! play.google.com 2023. 11. 30.
[자바스크립트]객체 생략 표기법 객체 기술 방법으로써 사용 빈도가 높은 쇼트핸드(생략 표현)가 있다. '객체의 속성명'과 '설정한 변수명'이 같으면 생략 가능하다. const name = "개발하는 고양이" const age = 6; const user = { name : name, age : age, } console.log(user); //결과 : {name: 개발하는 고양이, age: 6} const name = "개발하는 고양이"; const age = 6; const user = { name, age } console.log(user); //결과: {name : "개발하는 고양이", age: 6} 참고: 모던 자바스크립트로 배우는 리액트 입문 2023. 6. 8.
[자바스크립트]스프레드 구분 ... (깊은 복사, 얕은 복사) 스프레드 구문은 ... 과 같이 점 세개를 연결해서 사용한다. 배열에 이용함으로써 내부 요소를 순차적으로 전개할 수 있다. 일반적인 함수 사용 방법 스프레드 구문 사용 방법 스프레드 구문은 요소를 모으는 데도 활용할 수 있다. 요소 모으기 요소 복사와 결합(깊은 복사) 얕은 복사는 주소의 참조값(주소값)을 복사하고, 깊은 복사는 객체의 실제 값만 복사한다. 새로운 배열 생성 두 개의 배열 결합 여러 객체 결합 여기서 객체의 속성이 같으면 어떻게 되는지 테스트 해보았다. 덮어씌어지는 걸 확인 할 수 있다. 등호를 사용해서 복사하면 안 되는 이유(얕은 복사) 등호를 이용하여 복사하면 배열이나 객체 등 '오브젝트 타입'이라 불리는 변수는 참조값 역시 상속되기 때문에 예상치 못 한 동작을 일으킬 수 있다. 즉,.. 2023. 6. 7.
[자바스크립트]=를 이용하여 디폴트값 주기 인수의 디폴트값 메시지를 출력하는 함수 실행 시 인수가 전달되지 않은 경우 디폴트값 설정 디폴트값이기 때문에 값이 전달되면 전달된 값을 우선으로 한다. 객체 분할 대입의 디폴트 값 존재하지 않는 속성을 출력 분할 대입 시의 디폴트값을 설정 조상님로또-번호추천, 분석 - Google Play 앱 조상님 로또 앱을 이용하여, 무료로 로또 당첨 확률을 높일 수 있습니다. play.google.com 뽀모도로 타이머(Pomodoro Timer) - Google Play 앱 뽀모도로(Pomodoro)공부법은 단시간 집중력 향상을 위한 자기주도 학습법입니다. play.google.com 참고 : 모던 자바스크립트로 배우는 리액트 입문 2023. 6. 6.
[자바스크립트]객체, 배열 분할대입 분할 대입은 객체나 배열로부터 값을 추출하기 위한 방법이다. 분할 대입을 사용하지 않고 처리 객체 속성 수가 많아지거나 객체 변수명이 길어지면 매번 '변수명.속성'으로 입력하기 매우 번거롭다. 이럴 때 분할 대입을 이용한다. 분할 대입 이용 {}를 변수 선언부에 이용하면 객체 안에서 일치하는 속성을 추출할 수 있다. 존재하지 않는 속성명은 지정할 수 없다. 이름만 일치한다면 일부만 추출하는 것도 가능하고 순서가 달라도 상관없다. //일부만 추출 const {age} = myProfile; //순서를 바꾸어 추출 const { age, name } = myProfile; 만약, 추출한 속성에 별칭을 붙이고 싶을 때는 : 을 사용하면 된다. 배열 분할 대입 객체와 마찬가지로 배열도 분할 대입을 이용할 수 있.. 2023. 6. 6.
반응형