lwc 페이지를 만들려고 생각해보니

wire로 테이블에 재고를 뿌려주려면 테이블에 넣을 데이터가 먼저 있어야 하고

그 데이터를 먼저 가져오기 위해서는 Product2에서 정보를 가져올 메서드가 있어야 연결이 된다.

 

결국 lwc로 시작하려고 하다가 다시 또 메서드를 작성하게 되었다.

 

남은 일을 다시 정리해보면

1.B org Product2 데이터 받아오는 메서드

  • 나중에 where family in xx로 수정 필요
  • 메서드 하나에 a,c,d,e family만 받으면 하나의 메서드로 되기 때문에 BProductController에 작성

2.lwc 페이지 생성

  • 미리 spa 탭 구상해서 생성 (A, C, D, E)
  • 내부 테이블 작성
  • 테이블 우측 전체 동기화 추가
  • 전체 동기화 js 기능 추가
  • 테이블 내부 체크박스 추가
  • 테이블 우측 체크박스 부분 동기화 추가
  • 부분 동기화 js 기능 추가
  • 우측 버튼 하단에 선택된 상품명 정렬 컨테이너(여백 없애기)
  • 테이블 상단에 input창 추가로 상품명 검색으로 필터링 기능 추가

3.pmd 처리

4.테스트케이스 작성

5.보안 처리(Oauth2 받아서 처리하기)

6.toast 추가로 작업 반영 확인시키기

7.3개 org 추가하기

8.ppt 작성(급할 경우 notion으로 해도 된다)

9.배치 사용해서 처리하기

10.동기 api 소통

 

메서드를 작성하려다가 넣을 페이지 생성이 떠올라서

탭 생성을 찾아보다가 결국 앱 빌더를 통해 새로운 페이지를 만들고

제일 어울리는 sales 앱에 탭을 추가했다.

 

내부 spa탭에 들어갈 이름을 고민하다가

A org는 가죽 컨셉이기 때문에 가죽동화공방이라는 이름을 확정했고

나머지 C, D, E는 아직 미정이라 목재공방, 유리공방, 철재공방으로 가명을 넣어둘 예정이다.

 

결국 이름을 먼저 고민하게 되었는데

유리공방은 조금 더 세련된 느낌이라 로즈마리글라스로 정했고

철재 공방은 둔탁하고 철공소에 가까운 이름이라 덕은철강으로 결정했고

목재공방은 아낌없이주는나무로 결정했다.

 

이제 드디어 LWC 제작에 들어갈 수 있다.

lwc를 생성하고 spa 페이지를 만들려고 했는데

의식에 흐름에 따라 만들었던 부분 동기화 메서드를 이식해버렸고

2번에 작성했던 작업의 거의 역순으로 처리를 진행해버렸다.

 

테이블을 생성하기 위해

B org의 전체데이터를 받아오고

체크박스를 미리 만들어서 테이블을 생성했다.

 

생성한 체크박스를 이용하기 위해

js를 연동해서 기능을 추가하고

결국 부분 동기화를 전체 동기화 버튼보다 먼저 구현해버렸다.

 

체크박스를 만들려고 하는데 이것 또한 1시간 가량 먹히지 않아서

회사 LWC의 권위자 파이에게 질문을 했는데

토다다다다닥 엄청난 속도로 타이핑을 하시면서

간단한 오류들을 체크해보시더니

우회해서 값을 넣는 방식을 사용하셔서 성공하고

심지어 다시 정상적으로 되는 방법까지 찾아서

이게 하다 막히면 우회하는 방법으로 접근하라고 알려주시고 멋있게 떠나셨다.

 

apex 관련은 블레이크, LWC는 파이가 계시기 때문에 든든하지만

시도 때도 없이 질문하기에는 죄송하기도 하고 기본 매너도 아니기 때문에

할 수 있는 모든 방식을 다 시도하고

검색 키워드도 다 확인한 다음 내 선에서 정말 안될 것 같을 때 요청했는데

그 이후로는 문제가 길어야 1시간이면 해결이 되서 추가적인 요청은 없었다.

 

그 뒤로 작업을 하던 중 부분 데이터 요청하기 조회가 되지 않아 1시간 넘게 고생했는데

새로 도입하려던 코드가 문제가 아니었고

하필 새로 도입하려던 코드를 작성하던 시점에 인증이 만료되었기 때문에

해당 코드 작동이 되지 않았는데

혼자 기상천외한 방법들을 계속 시도하고 있었던 것이다.

 

그나마 예전에 작성했던 코드까지 도착해서

해당 코드의 작동이 안될 수 없다는 사실을 파악하고

역순으로 원인을 찾아보니 메서드의 비동기 처리 인증서 만료 문제였기 때문에

찾고자 하지 않는 상황에서는 에러 메세지를 볼 수 없었다.

 

spa를 만들고 싶었지만 저녁에 피자를 먹기로 해서 피자를 먼저 먹고

테이플 내부에 들어갈 데이터를 더 받아오고 싶었는데

곰곰이 생각해보니 매개변수 4개부터 에러메세지를 표기했는데

Product2를 전체로 넘기고 처리하면 된다는 사실을 알고 변경 시간도 추가했다.

 

테이블이 너무 비어있어서 어쩔 수 없이 추가한 부분인데

실제 데이터라면 제품설명등이 있으면 조금 더 풍부한 데이터가 될 수 있을 것 같지만

일단 기능적으로 더 다듬는 것이 더 중요해보였다.

 

css는 포기하고 lwc 공식문서의 class 내부에 내장형? 스타일을 먹이는 방식으로 진행했더니

그나마 그 때부터 일이 해결되기 시작했다.

 

뭔가 일이 많았는데 의식의 흐름으로 작업을 해서 뭔가 잘 했지만

과정 기록이 되지 않아 아쉬웠다.

 

 

 

 

 

(1).백준 17350번 2루수 이름이 뭐야는 뭔가 많이 이상한 문제였는데

여러 줄의 테스트케이스에서 'anj'라는 이름(?)이 있는 경우'뭐야;'를 출력하고 없는 경우 '뭐야?'를 출력하는 문제였다.

 

문자열 내부에 값까지 포함되어야 하는지 고민했지만단순 일치로 문제를 제출해보니 통과되는 것을 보면anj가 들어간 문자열이 아닌 'anj'만 일치해야 함을 알 수 있다.

const input = `4
aptl
molamolamolamola
dlqmfkglahqlcl
QWERTOP`.split('\n')

let result = '뭐야?'

for(let i = 1 ; i < input.length ; i++){
    if(input[i] === 'anj'){
        result = '뭐야;'
    }
}

console.log(result)

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

[수습일지] - 48(주말)  (0) 2023.05.13
[수습일지] - 47  (0) 2023.05.12
[수습일지] - 45  (0) 2023.05.10
[수습일지] - 44  (0) 2023.05.09
[수습일지] - 43  (0) 2023.05.08

+ Recent posts