aria-label을 사용한 웹 접근성 처리
·
💻 Dev/Etc
최근 웹, 모바일 접근성 심사를 진행하면서 대체 텍스트에 대한 부분을 맡게 되었다. 여태까지는 웹 접근성만 했어서 title, alt로 처리했었는데, 모바일 접근성도 하게 되면서 WAI-ARIA를 사용했다. 그리고 Title 속성 사용을 지양해야 하는 이유라는 글을 보고 aria 태그를 적극적으로 활용해야겠다고 생각했다. 간단한 예시로 기록하려고 한다. (안하면 까먹을 것 같아서) 이미 전체적인 CSS가 너무 범용적으로 입혀져 있어서 기존 태그 변화 없이 진행해야 했음을 미리 밝힙니다... 사용 속성 role role은 태그의 역할을 지정하는 속성이다. 정해진 태그만 사용할 수 있음 ex) link, button, tab ... aria-label aria-label 은 태그에 이름표를 붙이는 것과 같다..
미션2. 로또 - TDD 회고
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
본격적으로 TDD 기반으로 테스트 코드를 작성했다. 도메인 설계 기본기가 부족하니 객체에 대한 책임을 분리하는 게 어려웠다. 처음에는 프로덕션 코드보다 테스트 코드를 먼저 짜는 게 이상하고, 시간적으로 비효율적이라고 생각했는데 '이건 이렇게 동작해야 해!' 하는 테스트 코드가 있으니 과감하지만 안정적으로 리팩토링 할 수 있었다. 😮 1단계 - 문자열 계산기 "2 + 3 * 4 / 2"와 같은 문자열을 입력할 경우 이를 계산해 10을 출력하는 계산기를 구현해야 했다. 항상 메서드 재사용을 고려하자 나는 사칙연산 기호+기능을 enum 클래스로 구현했기 때문에 연산을 하려면 문자열 내의 기호와 일치하는 상수 값을 찾아야 했다. 처음에는 `values()` 메서드를 그대로 사용했다. public enum Ope..
미션1. 자동차 경주 - 단위테스트 회고
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
포비님이 첫 번째 미션은 쉽다고 말하셔서 할만하겠지 했는데 완전 오산이었다.첫 번째 미션부터 정말 어려웠고, 단기간에 이렇게 많은 블로그를 보고 학습한 적이 있었나 싶을 정도였다.몇 시간 동안 고민하다 손도 못 댈 때도 있고, 진지하게 내 수준이 아닌 것 같아서 그만둬야 되는 거 아닌가 생각했다 😥매 단계마다 엄청나게 많은 리뷰가 쏟아졌고, 계속 리팩토링 하면서 '재밌다!'라고 느끼는 게 신기했다! 1단계 - 학습 테스트 실습1단계는 본 미션에 들어가기 전 워밍업 단계로 String과 Set Collection에 대한 테스트를 구현하는 미션이었다. @DisplayName()에는 테스트 대상의 input과 output에 대한 시나리오를 설명하자처음에는 아래처럼 테스트 이름에 코드 로직을 설명했었다.@Te..
[Git] 원격 저장소의 브랜치 가져오기 (remote branch)
·
🛠 DevOps & Tool/Git
나는 최근 repository 하나를 2대의 PC에서 작업하고 있다. 즉 집에서 step1 브랜치에서 작업하다가, 회사 가서 step1 브랜치에서 이어서 작업한다. 평소처럼 집에서 push해놓은 걸 회사에서 이어서 작업하고 push 하려는데...! 회사 로컬에 원격 저장소의 step1 브랜치가 계속 안 떴다. 로컬, 원격 저장소를 확인하니 원격 저장소에 기본 브랜치만 뜸.. 구글링해서 `git remote update` , `git checkout -t origin/step1` 를 해봐도 안 됐다.....😥 해결 1. 원격 저장소의 모든 브랜치를 가져온다. $ git remote set-branches origin \* 2. 원격 저장소에 변경사항이 있는지 확인한다. $ git fetch origin 없..
동등성과 동일성&String.equals()
·
💻 Dev/Java & OOP
동일성, ==동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 것은 두 객체의 주소값이 같아 동일하다고 봐도 무방하다는 말이다. ==와 != 연산자는 기본 자료형에서만 값 비교를 위해 사용할 수 있다.참조 자료형에서 사용해도 되지만 참조 자료형에서 사용하면 값을 비교하는 게 아니라 주소값을 비교한다.Parent parent1 = new Parent("hyun");Parent parent2 = new Parent("hyun");System.out.println(parent1 == parent2); //falseParent 객체 안에 String name 이라는 변수에 같은 값을 넣고 비교해도 결과는 false다. 두 객체는 각자의 생성자를 사용하여 만들었기 때문..
TDD, 클린 코드 with Java 17기를 시작하며
·
📝 끄적끄적/TDD, 클린 코드 with Java 17기
NEXTSTEP에서 진행하는 TDD, 클린 코드 with Java 17기에 합류했다.🙌시작하게 된 이유 이제 구현했다고 손 놓고 좋아하는 연차는 지났다. 점점 연차가 쌓이면서 번아웃이 오는 와중에최근 프로젝트에서 계~속 닦달하는 바람에 거지같이 개발하면서 정말 현타가 왔다.급한 로직을 부탁해서 구현하면 오오 해주지만 이건 진짜 구현만 한건데하고 기분이 더 안 좋았다.그래서 자바 기본서를 사서 다시 읽었고, 클린 코드를 읽으면서 실무에 조금씩 적용하니 개발이 좀 재밌어졌다.근데 코드 리뷰를 받질 않으니 잘 하고 있는건가? 계속 의심이 생겼다. 80만 원은 적지 않은 돈이다.또 수료율이 30%도 안 된다고 하는데, 수료도 못하는데 듣는 게 맞나? 하고 많이 고민했다.결제하기까지 정말 많은 회고록을 읽었고 ..