분류 전체보기196 [Spring Boot JPA 게시판 만들기] 1. 환경설정 Intro Spring Boot와 JPA를 활용해서 간단한 게시판 기능을 구현해 보겠습니다. 글은 시리즈로 작성될 예정이며 현재 글에서는 프로젝트 생성, build.gradle과 dependencies, applicaiton.yaml 파일 설정에 대해 알아볼게요. - IDE : IntelliJ - java version : 17 프로젝트 생성 일일이 수동으로 Spring 프로젝트를 생성하고 설정하는 것은 쉽지 않기 때문에 IntelliJ와 Spring Initializer를 사용해서 Spring Boot 프로젝트를 생성하는 방법을 알아봅시다! IntelliJ IDEA 사용 인텔리 제이 유료 버전(IntelliJ IDEA)을 사용하신다면 프로젝트 생성 시 Spring Boot Generators를 사용할 .. 2024. 4. 18. [자바 개발 환경 구축] 자바 환경변수 설정 JDK 파일 설취 위치 확인 /Library/Java/JavaVirtualMachines cd로 위 경로 이동 후 ls 명령어를 실행하면 jdk 파일 확인할 수 있음 jdk-17.jdk vi ~/.zsh profile i 눌러서 편집 모드로 전환 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home export PATH=${PATH}:$JAVA_HOME/bin 환경변수 설정 후 esc 누른 후 :wq!로 저장 javac -version 설정한 JDK 버전이 출력되는지 확인 참고 사이트 https://velog.io/@chrkb1569/%EB%A7%A5%EB%B6%81-%EC%9E%90%EB%B0%94-%EC%84%A4%EC.. 2024. 2. 4. [자바 개발 환경 구축] 맥에 JDK 설치하기 (Java SE) https://www.oracle.com/kr/java/technologies/downloads/#java17 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 위 Java 다운로드 페이지 접속 자신의 운영체제에 맞는 JDK를 설치 macOS m1, m2 인 경우 ARM으로 설치 다운로드가 완료되면 패키지 파일 더블클릭하여 실행 다음 버튼 눌러 계속 진행 $ java -version java version "17.0.10" 2024-01-16 LTS Java(TM.. 2024. 2. 4. [RealmSwift] Migration Primary Key Realm을 사용해서 앱을 만들다 보면 프로젝트 진행 중에 새로운 프로퍼티 값을 추가, 삭제, 업데이트 하거나 프라이머리키를 변경해야 하는 순간이 있을 수 있다. 특히 앱을 이미 배포한 상태에서 꼭 필요한 데이터베이스 구조 변경이 일어나야 한다면 아래 글을 참고해서 Configuration 을 해주어야 한다. [RealmSwift] Migration, 운영 중인 앱의 필드 추가한 후 마이그레이션 해주기 class Customer: Object { @objc dynamic var idx = 0 @objc private dynamic var privateType: Int = CustomerType.active.rawValue let products = List() } 이미 운영 중인 앱에(혹은 코드를 작성 .. 2023. 5. 22. [Xcode/iOS] Simulator에서 UIViewController 꽉 차게 안나오는 경우 에러.. 까지는 아니지만 UIViewController가 화면에 꽉 안차서 나온다면 Targets > Info plist 로 가서 Key와 Value 추가해줍니다. Launch screen interface file base name 추가하시고 LaunchScreen 으로 지정하면 됩니다! 2023. 5. 12. [iOS/Swift] Configuration 별로 Firebase plist 파일 설정 빌드시 Build Phases를 반영함. 여기서 개발자가 빌드시 설정되어야 할 코드를 추가할 수 있음 Firebase의 푸시 기능을 사용할 때 정보가 담긴 Info.plist 파일을 필요로 하게 됨. 이 파일이 여러개인 경우 파일 이름을 각각 변경하고 AppDelegate에서 Bundle로 부터 파일을 찾아 반영할 수 있지만 Firebase Crashlytics를 설치하게 되면 info.plist 이름이 바뀌는 경우 에러가 발생함 Firebase info Script가 있는 경우 이를 사용하면 되고 없다면 Target 선택 > Build Phases 탭 선택 > New Run Script Phase 선택 # Type a script or drag a script file from your workspac.. 2023. 4. 26. [Xcode/Swift] Multiple Target 1. duplicate Target 혹은 하단에 있는 + 버튼을 눌러서 추가해 줘도 됨. 사용자 정의 property list가 담긴 info.plist 파일도 함께 복사됨 2. 더블 클릭하여 Target 이름 변경, 스킴 이름 변경하기 위해 상단 빌드 상태바에서 Manage Schemes 선택 3. 스킴 선택 후 탭 누르면 이름 변경 가능 4. 각 Configuration에서 사용할 Custom Flag설정 가능 Swift Compiler에서 Custom Flags 설정 가능함 2023. 4. 26. [Xcode/Swift] User-Defined Build Settings Build Settings에서 Configuration 별로 값을 지정하여 사용할 수 있음 Configuration이 각각 다른 값을 가지는 경우 사용할 수 있음 ex) host url 1. Build Settings 에서 Add User-Defined Setting 을 눌러 사용자 정의 세팅을 추가 2. 사용할 타이틀을 입력해 주면 Configuration 별로 값을 지정할 수 있음 3. Info.plist에서 BASE_URL로 접근시 Build settings 에서 정의해 준 BASE_URL 값을 쓸 수 있도록 $(BASE_URL) 로 설정 해 줌 Info.plist란 key/value 쌍으로 빌드 타임 동안 업데이트 되는 값. xCode는 빌드 되는 동안 Build setting을 살펴보게 되는데 .. 2023. 4. 26. [Xcode/Swift] Configuration 관리하기 Intro Dev -> QA -> Release의 과정을 거치며 각 단계에서 요구하는 빌드 세팅이나 상수의 정의가 다를 수 있음 ex) URL host for Networking, Firebase info.plist etc.. Configuration을 사용하면 각 Configuration에 필요한 빌드 세팅을 지정해 줄 수 있음 Multiple targets을 통해서도 프로젝트에 사용하는 값을 분기 할 수 있지만 Target은 MacOS, iOS 등의 기긱 타겟, 같은 코드를 공유하면서 일부 로직이 달라 다른 앱으로 배포되는 앱 등에서 사용 Configuation을 변경하는 것은 일종의 작업 환경을 변경해 주는 것 하나의 앱에서 다른 환경으로 테스트 하거나 실행해야 할 때 유용 배포시에도 Configu.. 2023. 4. 26. [iOS/Swift] 앱 뱃지 갯수 변경 UIApplication.shared.applicationIconBadgeNumber = 90 시뮬레이터에서는 표시 되지 않음 특정 동작시 뱃지의 갯수를 변경하고자 한다면 위 코드를 사용해서 직접 변경해 줘야 함 뱃지를 제거 하고 싶은 경우 0을 입력하면 뱃지가 노출되지 않음 2023. 4. 26. [iOS/Swift] Alamofire 프로젝트를 위한 UnitTest URLSession의 dataTask를 프로토콜로 만든 URLSessionProtocol을 URLSession과 NetworkManager의 session의 타입으로 지정해서, 실 사용 앱에서는 기본 URLSession 동작을 그대로 유지하고 테스트 시에는 Mock URLSession을 사용하여 테스트 하는 것이 예시로 많이 나왔다. 만약 이미 Alamofire을 사용하는 경우 이를 한 번 더 추상화 한 Moya를 사용하는 방법도 있겠지만 우선은 기존 프로젝트의 수정이 최대한 적은 쪽으로 Alamofire로 Unit Test를 시도해 보자! Session 기존에 사용한 NetworkManager는 Singleton 패턴으로 되어 있다. 외부에서 직접 Session을 주입해주는 것이 아니라 내부에서 req.. 2023. 4. 21. [Unit Test] Test Double Unit Test를 진행하는 동안 request가 발생하면 데이터베이스의 영향을 받게 됨. 수행해야 하는 기능을 가진 로직을 작성했다 하더라도 데이터 베이스의 상태에 따라 테스트 결과가 다르게 나올 가능성이 있음 Unit Test는 빠르고 안정적으로 진행되어야 함 안정성 외에도 실제 서버와 통신하게 되면 단위 테스트 속도가 느려짐 테스트하려는 객체가 직접적으로 네트워킹 하지 않고 테스트 할 때 대신 사용할 수 있는 객체를 테스트 더블이라고 함 Dummy 인스턴스 객체가 필요하지만 기능은 필요로 하지 않는 객체 => 전달은 되지만 사용되지 않음 아무런 동작을 하지 않아도 테스트에 영향을 미치지 않는 객체 Fake 객체 내부에서 필요로 하는 다른 외부 객체의 동작을 단순화 해서 구현한 객체이지만 실제 프로덕.. 2023. 4. 14. 이전 1 2 3 4 5 6 ··· 17 다음