URL Checker 구현기본 URL 체크 함수package mainimport ( "errors" "fmt" "net/http")var errRequestFailed = errors.New("Request failed")func main() { urls := []string{ "https://www.airbnb.com/", "https://www.google.com/", "https://www.amazon.com/", "https://www.reddit.com/", "https://www.google.com/", "https://soundcloud.com/", "https://www.facebook.com/", "https://www.instagram.com/", "https://aca..
struct구조체(Struct)는 여러 필드를 하나로 묶어서 새로운 타입을 정의하는 방법이다. 기본 구조체 정의package mainimport "fmt"type person struct { name string age int favFood []string}func main() { favFood := []string{"kimchi, ramen"} jihyun := person{name: "jihyun", age: 25, favFood: favFood} fmt.Println(jihyun)} 출력 결과{jihyun 25 [kimchi, ramen]} Methods메서드는 특정 타입에 속한 함수다. Receiver를 통해 구조체와 연결된다. 구조체와 생성자 함수accounts.gopackage accoun..
Pointer포인터 때문에 C를 싫어했는데,, Go에서 다시 만나게 되었다. 값 복사 vs 참조일반적인 변수 할당 (값 복사)package mainimport ( "fmt")func main() { a := 2 b := a a = 10 fmt.Println(a, b)} 출력 결과10 2 b는 a의 값을 복사한 것이므로, a가 변경되어도 b는 영향을 받지 않는다. 메모리 주소 확인변수 앞에 &를 붙이면 해당 변수의 메모리 주소를 확인할 수 있다. package mainimport ( "fmt")func main() { a := 2 b := 5 fmt.Println(&a, &b)} 출력 결과0x14000190020 0x14000190028 각 변수는 서로 다른 메모리 주소에 저장된다. 포인터 변수b :..
Package패키지명은 컴파일을 위한 필수 요소다. 패키지명을 선언하지 않으면 컴파일 오류가 발생한다. 현재 파일의 위치가 프로젝트 최상위가 아니라면, 위치하고 있는 폴더명을 패키지명으로 명시해야 한다. 프로젝트 최상위 main.gopackage main /laguage 폴더 하위의 study.gopackage language functionGo에서 함수의 접근 제어는 이름의 첫 글자로 결정된다. function의 이름이 대문자로 시작하면 public fuction이고, 소문자로 시작하면 private function이다. private function은 다른 패키지에서 호출할 시, 컴파일 에러가 발생한다. package mypackageimport "fmt"// public - 다른 패키지에서 사용..
Enum이란?Enum은 Java 5(JDK 1.5)부터 도입된 기능으로, 서로 관련된 상수들의 집합을 타입 안전하게 정의할 수 있는 특별한 클래스다. Java 5 이전에는 상수를 정의할 때 public static final 필드를 사용했지만, 이 방식은 타입 안정성이 보장되지 않았다. // Java 5 이전 방식public class OrderStatus { public static final int PENDING = 0; public static final int COMPLETED = 1; public static final int CANCELLED = 2;}// Java 5 이후 Enum 방식public enum OrderStatus { PENDING, COMPLETED, CA..
피드백 정리3주차도 2주차 백엔드 공통 피드백과 코드 리뷰, 그리고 스스로 개선/학습하고 싶었던 부분까지 모두 정리했다. 피드백을 최대한 반영하고자 하는 것이 목표였다. 백엔드 공통 피드백README.md를 상세히 작성한다. ✅기능 목록을 재검토한다. ✅기능 목록을 업데이트한다. ✅값을 하드 코딩하지 않는다. ✅구현 순서도 코딩 컨벤션이다. ✅변수 이름에 자료형은 사용하지 않는다. ✅한 메서드가 한 가지 기능만 담당하게 한다. ✅메서드가 한 가지 기능을 하는지 확인하는 기준을 세운다. ✅테스트를 작성하는 이유에 대해 본인의 경험을 토대로 정리해본다. ✅처음부터 큰 단위의 테스트를 만들지 않는다. ✅ 코드 리뷰내 코드 리뷰 보면서Java API 및 JUnit 학습equals() & hashCode() 오버..