오늘은 집에서도 회사와 같은 작업을 할 수 있는 환경을 구축하려고 했는데
Salesforce Extension Pack를 설치하고 뭘 더 해야 하는지 생각해보니
Java설치 및 pmd 설치 후 trailhead와 연동시키면 될 것 같았다.

일단 sfdx update 자체가 되지 않아 확인해보니
우분투는 npm install sfdx-cli --global라는 명령어를 입력해서 다운받아야 했고
sfdx update를 통해 업데이트 확인 후 
extension을 받아야 하는 순서얐다.

윈도우가 확실히 더 편했던게
설치하는 대부분은 다음, 다음, 확인의 순서로 해결이 되었는데
ubuntu는 명령어를 추가적으로 알아야 진행할 수 있었다.

java의 설치 경로는 일반적으로
/lib/jvm/java-17-openjdk-amd64에 존재하고 있기 때문에
java-home 환경변수 설정을 /lib/jvm/java-17-openjdk-amd64로 바꿔주면 된다.

작업 도중 prettier 작동이 되지 않아 공식문서를 보고 아래의 코드를 통해 추가 플러그인을 설치했다.
npm install --save-dev --save-exact prettier prettier-plugin-apex

 

 

1.wire를 사용하기 위해서는 해당 함수와 wire를 import 해야 하고

해당 데이터로 받아온 값은 data에 감싸져 있기 때문에

xxx.data로 접근해야 생각했던 값을 얻을 수 있다.

 

예를 들어 accounts를 반환받은 다음 해당 값을 사용할 때

accounts에 for:each를 사용하는 것이 아니라

accounts.data에 for:each를 사용해야 account에 접근할 수 있다.

 

이러한 부분은 Error를 처리할 때도 알 수 있는데

wire를 사용할 때 반환되는 값들은 error, data 등이 있기 때문에

구조분해 할당을 통해 해당 값들만 가져올 수도 있다.

@wire(getAccountList)
wiredAccounts({error, data}){
	if(data){
		this.accounts = data;
		this.error = undefined;
	}
	else if(error){
		this.accounts = false;
		this.error = error
	}
}

 

 

2.강의랑은 상관없지만 회사랑 환경이 달라서 작성한 콘트롤러를 불러올 수 없는건지

에러가 자꾸 터져서 작동이 되지 않아 시간만 소모하게 되었고

화가 나서 다 지우고 별 내용 없는 lwc를 만들고 배포하니 잘 작동되는 것을 볼 수 있었다.

 

이 문제를 해결하기 위해 깃허브를 사용해야 하는지에 대해 잠깐 고민했지만

회사 업무 코드를(현재는 아니지만) 깃허브를 통해 이용한다는 것은 말이 안된다고 생각했고

해결책을 열심히 찾아보다가 뭔가 클라우드 같이 생긴 Org Browser를 통해 값을 가져올 수 있다는 것을 알았다.

 

기존의 LWC 코드들은 Lightning Web Components에서 볼 수 있었고

class는 Apex class에서 가져올 수 있었다.

 

이제 조금 더 편하게 집과 회사를 오가며 진행할 수 있을 것 같다.

 

 

 



(1).백준 7785번 회사에 있는 사람은
사람의 출입명단을 보고 현재 회사에 남은 사람을 내림차순 정렬하는 문제였다.

출입 여부를 판단하는 것이고 이름은 문자열로 들어갈 수 밖에 없기 때문에
배열에 넣고 빼는 방식보다는 객체에 각각을 0, 1로 판단하는 것이 좋을 것 같았기 때문에
Enter의 경우 obj[xxx] = 1, leave의 경우 obj[xxx] = 0으로 처리한 다음
key in obj를 통해 1(입장상태)인 값을 전부 result에 담은 다음
sort로 정렬해 오름차순으로 만들어주고 reverse를 통해 역순으로 변경했다.

const input = `4
Baha enter
Askar enter
Baha leave
Artem enter`.split('\n')

const accessRecord = {}
const result = []

for(let i = 1 ; i < input.length ; i++){
    const [name, order] = input[i].split(' ')
    if(order === 'enter'){
        accessRecord[name] = 1
    }
    else{
        accessRecord[name] = 0
    }
}

for(let key in accessRecord){
    if(accessRecord[key]){
        result.push(key)
    }
}

console.log(result.sort().reverse().join('\n'))

'회고' 카테고리의 다른 글

[수습일지] - 30  (0) 2023.04.25
[수습일지] - 29  (0) 2023.04.24
[수습일지] - 27(주말)  (0) 2023.04.22
[수습일지] - 26  (0) 2023.04.21
[수습일지] - 25  (0) 2023.04.20

+ Recent posts