'프로그래밍 > PS' 카테고리의 다른 글
[프로그래머스][LV2] 가장 큰 수 (0) | 2021.06.12 |
---|---|
[c++][template] quick sort (0) | 2021.06.11 |
[백준] Class 3 All Solved (0) | 2021.06.03 |
[백준 12904] A와 B (0) | 2021.05.28 |
[백준 2109] 순회강연 (0) | 2021.05.26 |
[프로그래머스][LV2] 가장 큰 수 (0) | 2021.06.12 |
---|---|
[c++][template] quick sort (0) | 2021.06.11 |
[백준] Class 3 All Solved (0) | 2021.06.03 |
[백준 12904] A와 B (0) | 2021.05.28 |
[백준 2109] 순회강연 (0) | 2021.05.26 |
움직임의 방향은 다음과 같다.
In both of the following examples, the speakers are seeing things from A’s viewpoint – things will move to the place where A is:
A: Are you going to the bedroom?
B: Yes.
A: Can you bring me my grey sweater? It’s on the bed.
B: Yeah. (B will return with the sweater to the place where A is.)
Not: Can you take me my grey sweater?
A: Are you coming to our place on Friday night?
B: Yes. Do you want me to bring my guitar? (B will carry the guitar to the place where A will be.)
움직임의 방향이 한 가지 더 있다.
[on the telephone]
A: Did Laura bring you anything for your birthday?B: Yes. She brought me some flowers and a CD. (Laura is C, another person, in a different place from A or B. She moved with something to where B, the listener, was.)
움직임의 방향은 다음과 같다.
[university assistant at a central faculty office, speaking to a student]
You have to fill in this form and then take it to the English Department to get it stamped. (the assistant and the student are at the central faculty office – the English Department is a different place)
Not: … and then bring it to the English Department
A: I can take you to the station tomorrow. What time’s your train? (Neither A nor B is at the station; it is a different place.)
B: Thanks. It’s eight-thirty.
역시나 물건이나 사람을 움직이는 것을 뜻하지만, 조금 더 구체적이다.
현재 위치에 있어야 하는데 없을 때 사용한다.
움직임의 방향은 한 종류이다.
If you’re going to the garage, can you fetch that green bag with the paintbrushes in it? Or Can you get that green bag …
Right. It’s five o’clock. I’d better go and fetch my mother from the station.
A: Are you and Josh coming to our party?
B: Yeah. Sheila invited us.
A: Good. Can you bring some CDs? We’re a bit short of music.
Not: Can you take some CDs?
출처 : https://dictionary.cambridge.org/ko/문법/영국식-문법/bring-take-and-fetch
여러가지 연습 사이트 (0) | 2021.07.21 |
---|---|
[c++] 참조 배열을 인자로 넘기기 (0) | 2021.05.28 |
이 글은 https://sarunw.com/posts/xcode-shortcuts-for-swiftui/ 를 번역해서 작성한 글입니다.
SwiftUI로 개발할 때, 유용한 Xcode 단축키에 대해서 소개해드리겠습니다.
SwiftUI로 개발할 때 편한 기능 중에 하나인 Preivew 기능이 종종 멈출 때가 있습니다.
이럴 때, resume
버튼을 눌러줘야만 다시 Priview기능이 동작합니다.
계속해서 resume
버튼을 누르는 것은 꽤나 불편한 일입니다. 그래서 단축키를 알아두면 편하게 Preview 기능을 이용할 수 있습니다.
command
+option
+p
Editor menu > Canvas > Refresh Canvas
SwiftUI에서는 UIKit으로 개발할 때에 비해서 Indnet(들여쓰기)가 많습니다.
간혹 오타가 한번 생기거나, 자동완성을 잘못 사용했을 때 Indent가 잘못 되는 경우가 있습니다.
하나한 Indent를 수정해주는 것 보다, 단축
키를 사용하면 한번에 Indent를 설정해줄 수 있습니다.
control
+i
Editor menu > Structure > Re-Indent
SwiftUI에서는 적용해주는 함수(?)의 순서가 중요합니다.
적용순서를 바꾸는것은 동작이나 모습의 변화를 의미합니다.
아래는 그 예시입니다.
Text("SwiftUI")
.padding()
.background(Color.yellow)
Text("SwiftUI")
.background(Color.yellow)
.padding()
이렇게 SwiftUI에서는 적용 순서가 중요하기 때문에, 한 줄의 코드를 위로, 아래로 옮기는 일이 다분합니다.
command
+option
+[
/]
Editor menu > Structure > Move Line Up
한 줄만 위 아래로 옮기는 것이 아닌, 여러줄을 선택해서 한번에 옮길 수도 있습니다.
간단하게 여러 줄을 선택해서 위의 단축키를 누르면 동일한 방법으로 여러줄의 코드를 이동할 수 있습니다.
[Apple Developer
There’s never been a better time to develop for Apple platforms.
developer.apple.com](https://developer.apple.com/sf-symbols/)
SF Symbols is a library of iconography designed to integrate seamlessly with San Francisco, the system font for Apple platform
SF Symbols에서 제공하는 이미지를 사용하면 systemName
으로 이미지을 불러올 수 있다.
UIImage(systemName: "bicycle.circle")
하지만 버전별로 지원하는 이미지가 다르므로, 버전별로 대응이 필요하다.
예를 들어서 `bicycle.circle`의 사용 가능 버전은 아래와 같다.
원하는 이미지를 검색해서 선택한 뒤, 아래와 같이 템플릿 내보내기
버튼을 클릭한다.
Device : 2021 M1 Macbook Pro 16
OS : macOS Monterey (12.0.1)
universalaccessd
의 메모리 점유가 비정상적으로 높아지는 상황이 발생했다.
M1
한정인지는 모르겠으나, macOS Monterey
에서 발생하는 메모리 누수 버그가 있다.
구글링 해 본 바로는, 특정한 상황에서만 발생하는 메모리 누수 버그였다.
아마 이 글을 찾아보는 분들중에는, 대부분 마우스 커서를 변경했을 것이다. 그것이 아니라면 이 글로는 해결이 되지 않는다.
Monterey에서 새롭게 추가된 기능인 커서 색상 변경은, 메모리 누수 버그의 원인으로 보여진다.
해결 방법은 그저, 커서 색상을 설정했던 곳으로 돌아가 설정을 리셋해주면 된다.
시스템 환경설정 > 손쉬운 사용 > 디스플레이 > 포인터 > 재설정
System Preference > Accessibility > Display > Pointer > Reset
[MS Word] 워드가 너무 느릴 때, 워드 메모리 사용량 (0) | 2021.11.29 |
---|---|
[Mac] Thunderbolt 2 <-> Thunderbolt 4 변환 (0) | 2021.11.14 |
이렇게 생긴 JSON포멧에서 distance
와 duration
만 파싱하려고 한다.
다른 변수들은 모두 필요가 없기 때문에, 저 둘의 상위 변수들에만 접근해서 추출하면 된다.
애플에서 소개된 방법으로는 최상위에서부터 depth를 하나씩 들어가면서 Container
를 만들며 접근할 수 있다.
그런데, 상위 변수가 배열 형식일 경우에는 추가적으로 배열의 원소에 접근하는 작업이 필요하다.
검색을 해보면, nested array data
, nested array
, nested json
과 같은 키워드로 결과가 나오는데
그 방법들을 모두 종합해서 가장 간단한 방법으로 구현 해 보았다.
아래 코드에서 보면 featuresContainer
에 한번 접근 한 뒤에, 그 내부에서 featureContainer
에 접근하는 것을 볼 수 있다.
struct MyORResponse: Decodable {
let distance: Double?
let duration: Double?
init(from decoder: Decoder) throws {
// 최상위 컨테이너에 접근한다.
let rootContainer = try decoder.container(keyedBy: RootContainerKeys.self)
// root > features
var featuresContainer = try rootContainer.nestedUnkeyedContainer(forKey: .features)
// root > features > feature
let featureContainer = try featuresContainer.nestedContainer(keyedBy: FeatureKeys.self)
// root > features > feature > properties
let propertiesContainer = try featureContainer.nestedContainer(keyedBy: PropertiesKeys.self.self, forKey: .properties)
// root > features > feature > properties > summary
let summaryContainer = try propertiesContainer.nestedContainer(keyedBy: CodingKeys.self, forKey: .summary)
// root > features > feature > properties > summary > duration, distance
self.duration = try summaryContainer.decode(Double.self, forKey: .duration)
self.distance = try summaryContainer.decode(Double.self, forKey: .distance)
}
private enum CodingKeys: String, CodingKey {
case distance
case duration
}
private enum RootContainerKeys: CodingKey {
case features
}
private enum FeatureKeys: CodingKey {
case properties
}
private enum PropertiesKeys: CodingKey {
case summary
}
}
위와 같이 모델을 작성한 경우에
let jsonData = """
{
...
}
""".data(using: .utf8)!
let result = try JSONDecoder().decode(MYORResponse.self, from: jsonData)
let distance = result.distance
let duration = result.duration
이렇게 디코딩된 객체에서 단번에 접근할 수 있다.
[따릉이 API] 서울시 열린데이터 광장에서 따릉이 API 활용해보기 (0) | 2021.11.24 |
---|
Device : 2021 M1 Macbook Pro 16
OS : macOS Monterey (12.0.1)
MacBook
에서 Word
프로그램을 사용하다 보면 순식간에 엄청난 메모리를 사용하게 될 수 있다.
아래와 같이 순식간에 64GB가 넘는 메모리를 사용하게 될 수 있다..
이렇게 많은 메모리를 사용하게 되면 어느 순간 응용 프로그램이 예기치 않게 종료 되었습니다
라는 오류 문구를 보여주며,
프로그램들이 하나씩 강제 종료된다.
이 현상의 원인은 바로 Word의 자동 수정(고침) 기능
때문이다.
Word를 실행한 상태에서 Command + ,
버튼을 동시에 누르면 Word 기본 설정
창이 나타난다.
또는, 왼쪽 상단에서 Word
> Microsoft Word 정보
를 누르면 된다.
맞춤법 및 문법 검사
를 누르면 아래와 같이 여러 가지 검사 옵션이 있다.
최소한으로 필요한 것들을 제외하고서는 모두 체크 해제해준다.
내 경우에는, Word
에서 문서를 작성할 때에는 맞춤법 검사를 하지 않고,
문서 작성이 끝나면, 한꺼번에 맞춤법 검사 사이트에서 검사해준다.
자동 고침
을 누르면 아래와 같이 입력할 때 맞춤법 및 서식을 자동으로 고침
이 체크되어 있을 것이다.
이 체크를 해제해준다.
맥북을 사용하는 사람들 중, 워드 작업을 주로 하는 분들도 많이 계실 텐데
위 내용을 따라 해서 메모리 사용을 줄여주면 더 이상 문서 작업할 때, 메모리를 고민할 필요가 없을 것이다.
그리고, 혹시나 웹서핑을 할 때 창을 많이 띄워놓고 사용하는 편이라면, Chrome
보다는 Safari
를 사용하는 것을 추천한다.
Chrome
은 많은 메모리를 사용하기 때문에, 최대한 적은 창을 사용하는 것이 좋다.
[Monterey][M1?] universalaccessd 메모리 누수 / 오류 (0) | 2021.11.30 |
---|---|
[Mac] Thunderbolt 2 <-> Thunderbolt 4 변환 (0) | 2021.11.14 |
11 / 24 (수) 일단 만들면서 해결한 이슈들부터 기록한 뒤, 나중에 완성된 글을 작성할 예정이다.
Response 명세는 아래와 같이 나와있다.
하지만 해당 값들이 어떤 타입인지 전혀 나와있지 않다..
출력을 해 보면 아래와 같이 응답이 온다.
응답 결과를 보고 대강 예상해서 모델을 만들어봤을 때는, 아래와 같이 Cnt변수
를 Int
타입으로 만들었다.
이렇게 모델을 만들어 응답 결과를 디코딩 했더니
🥲 외않돼지.. 🥲
열심히 구글링을 하던중에 아래 글을 보게 되었고, 어떤 상황에서 Decoding오류가 발생하는지 알게 되었다.
https://jiseobkim.github.io/swift/2018/07/21/swift-Alamofire와-Codable.html
[Swift - Alamofire와 Codable
나만의 공간
jiseobkim.github.io](https://jiseobkim.github.io/swift/2018/07/21/swift-Alamofire와-Codable.html)
그래서 의심가는것들을 하나씩 바꿔보았고, 원인을 찾을 수 있었다.
Cnt
변수들이 모두 String
타입이였던 것이다...! 그런데 또, list_total_count
변수는 Int
타입니다...
왜.. 이런식으로 변수타입을 설정했는지는 전혀 모르겠지만,, 아무튼 여러 삽질끝에 해결하게 되었다.
`RantalStationInfo`의 Cnt변수들은 왜 `String`으로 설정했고, `list_total_count`변수는 `Int`타입으로 설정했는지 아시는분은 댓글로 꼭 알려주시면 감사하겠습니다,,
[Swift] API Response 파싱 / Codable / Nested Array JSON (0) | 2021.11.29 |
---|